データ準備のマッピング機能
データ準備関数を使用して、ソースフィールドに入力された内容に基づいて値を計算できます。
フィールド
フィールド名には任意の正しい識別子を使用できます。Unicode 文字と数字の無制限の長さのシーケンスで、文字で始まるドル記号 ($
) またはアンダースコア文字 (_
) をクリックします。 変数名では大文字と小文字が区別されます。
フィールド名がこの規則に従わない場合、フィールド名はで囲む必要があります。 ${}
. 例えば、フィールド名が「名」または「名」の場合、名前は次のように囲む必要があります。 ${First Name}
または ${First\.Name}
それぞれ。
また、フィールド名が 任意 次の予約済みキーワードのうち、ラップする必要があります。 ${}
:
new, mod, or, break, var, lt, for, false, while, eq, gt, div, not, null, continue, else, and, ne, true, le, if, ge, return, _errors
サブフィールド内のデータには、ドット表記を使用してアクセスできます。 例えば、 name
オブジェクト、 firstName
フィールド、使用 name.firstName
.
関数のリスト
次の表に、サポートされるすべてのマッピング関数と、サンプル式およびその結果の出力を示します。
文字列関数 string
- STRING:連結する文字列。
"Hi, there!"
\
: +, ?, ^, |, ., [, (, {, ), *, $, \
複数の文字を区切り文字として含める場合、区切り文字は複数文字の区切り文字として扱われます。- 文字列: 必須 分割する必要がある文字列です。
- 正規表現: オプション 文字列の分割に使用できる正規表現です。
["Hi,", "there"]
- 入力: 必須 検索する文字列です。
- SUBSTRING: 必須 文字列内で検索される部分文字列。
- 開始位置: オプション 文字列内で検索を開始する場所。
- 発生件数: オプション 開始位置から検索する n 番目のオカレンス。 デフォルトの重み付けは 1 です。
- 入力: 必須 入力文字列。
- 検索 (_F): 必須 入力内で検索する文字列です。
- 置換 (_R): 必須 「TO_FIND」内の値を置き換える文字列。
- 入力: 必須 入力文字列。
- START_INDEX: 必須 部分文字列が開始する入力文字列のインデックスです。
- 長さ: 必須 サブ文字列の長さ。
lcase
- 入力: 必須 小文字に変換する文字列です。
lcase("HeLLo")
ucase
- 入力: 必須 大文字に変換する文字列です。
ucase("HeLLo")
\
: \
. 複数の区切り文字を含める場合、文字列は 任意 文字列内に存在する区切り文字の数を指定します。 注意: この関数は、区切り文字の有無に関係なく、文字列から null 以外のインデックスのみを返します。 結果の配列に NULL を含むすべてのインデックスが必要な場合は、代わりに「explode」関数を使用します。- 入力: 必須 分割する入力文字列です。
- 区切り文字: 必須 入力を分割するために使用される文字列です。
["Hello", "world"]
- 区切り文字: 必須 オブジェクトの結合に使用する文字列。
- オブジェクト: 必須 結合される文字列の配列。
join(SEPARATOR, [OBJECTS])
join(" ", to_array(true, "Hello", "world"))
- 入力: 必須 パドアウトする文字列です。 この文字列は null にすることができます。
- カウント: 必須 埋め込む文字列のサイズです。
- パディング: 必須 入力を埋め込む文字列です。 null または空の場合は、1 つのスペースとして扱われます。
- 入力: 必須 パドアウトする文字列です。 この文字列は null にすることができます。
- カウント: 必須 埋め込む文字列のサイズです。
- パディング: 必須 入力を埋め込む文字列です。 null または空の場合は、1 つのスペースとして扱われます。
- 文字列: 必須 最初の「n」文字を取得する文字列です。
- カウント: 必須 文字列から取得する「n」文字。
- 文字列: 必須 最後の「n」文字を取得する文字列です。
- カウント: 必須 文字列から取得する「n」文字。
- 文字列: 必須 空白を削除する文字列です。
- 文字列: 必須 空白を削除する文字列です。
- 文字列: 必須 空白を削除する文字列です。
- 文字列 1: 必須 比較する最初の文字列です。
- 文字列 2: 必須 比較する 2 番目の文字列です。
- 文字列 1: 必須 比較する最初の文字列です。
- 文字列 2: 必須 比較する 2 番目の文字列です。
正規表現関数
- 文字列: 必須 グループを抽出する文字列です。
- 正規表現: 必須 グループに一致させる正規表現です。
- 文字列: 必須 チェックする文字列は、正規表現と一致します。
- 正規表現: 必須 比較する正規表現です。
ハッシュ関数 hashing
- 入力: 必須 ハッシュ化するプレーンテキスト。
- 文字セット: オプション 文字セットの名前。 UTF-8、UTF-16、ISO-8859-1、US-ASCII などの値が使用できます。
- 入力: 必須 ハッシュ化するプレーンテキスト。
- 文字セット: オプション 文字セットの名前。 UTF-8、UTF-16、ISO-8859-1、US-ASCII などの値が使用できます。
- 入力: 必須 ハッシュ化するプレーンテキスト。
- 文字セット: オプション 文字セットの名前。 UTF-8、UTF-16、ISO-8859-1、US-ASCII などの値が使用できます。
- 入力: 必須 ハッシュ化するプレーンテキスト。
- 文字セット: オプション 文字セットの名前。 UTF-8、UTF-16、ISO-8859-1、US-ASCII などの値が使用できます。
- 入力: 必須 ハッシュ化するプレーンテキスト。
- 文字セット: オプション 文字セットの名前。 UTF-8、UTF-16、ISO-8859-1、US-ASCII などの値が使用できます。
URL 関数 url
- URL: 必須 プロトコルの抽出元の URL。
- URL: 必須 ホストの抽出元の URL。
- URL: 必須 ポートの抽出元の URL。
- URL: 必須 パスの抽出元の URL。
- FULL_PATH: オプション フルパスが返されるかどうかを決定する boolean 値です。 false に設定した場合は、パスの終わりのみが返されます。
- URL: 必須 クエリ文字列を取得しようとしている URL です。
- アンカー: 必須 クエリ文字列内のアンカーを使用して何をおこなうかを決定します。 "retain"、"remove"、"append"の 3 つの値のいずれかを指定できます。
値が「retain」の場合、返される値にアンカーがアタッチされます。
値が「remove」の場合、返される値からアンカーが削除されます。
値が「append」の場合、アンカーは別の値として返されます。
get_url_query_str("foo://example.com:8042/over/there?name= ferret#nose", "remove")
get_url_query_str("foo://example.com:8042/over/there?name=ferret#nose", "append")
{"name": "ferret#nose"}
{"name": "ferret"}
{"name": "ferret", "_anchor_": "nose"}
- URL: 必須 ASCII 文字に置き換えるかエンコードする特殊文字を含む入力 URL。
- URL: 必須 特殊文字にデコードする ASCII 文字を含む入力 URL。
日付および時間関数 date-and-time
date
関数は、 データ形式処理ガイド.2021-10-26T10:10:24Z
- 日付: 必須 形式を設定する ZonedDateTime オブジェクトとしての入力日。
- 形式: 必須 日付の変更先の形式を指定します。
yyyy-MM-dd HH:mm:ss
")2019-10-23 11:24:35
- タイムスタンプ: 必須 形式を設定するタイムスタンプです。 これはミリ秒単位で書き込まれます。
- 形式: 必須 タイムスタンプを取得する形式を指定します。
yyyy-MM-dd'T'HH:mm:ss.SSSX
")2019-10-23T11:24:35.000Z
- 日付: 必須 日付を表す文字列です。
- 形式: 必須 ソースの日付の形式を表す文字列です。注意: これは、 not は、日付文字列の変換先の形式を表します。
- DEFAULT_DATE: 必須 指定された日付が null の場合に返されるデフォルトの日付。
2019-10-23T11:24:00Z
- 日付: 必須 日付を表す文字列です。
- 形式: 必須 ソースの日付の形式を表す文字列です。注意: これは、 not は、日付文字列の変換先の形式を表します。
2019-10-23T11:24:00Z
- 日付: 必須 日付を表す文字列です。
"year"
"yyyy"
"yy"
"quarter"
"qq"
"q"
"month"
"mm"
"m"
"dayofyear"
"dy"
"y"
"day"
"dd"
"d"
"週"
"ww"
"w"
"weekday"
"dw"
"w"
"hour"
"hh"
"hh24"
"hh12"
"minute"
"mi"
"n"
"second"
"ss"
"s"
"millisecond"
"SSS"
- コンポーネント: 必須 日付の部分を表す文字列です。
- 日付: 必須 標準形式の日付。
"year"
"yyyy"
"yy"
"month"
"mm"
"m"
"day"
"dd"
"d"
"hour"
"hh"
"minute"
"mi"
"n"
"second"
"ss"
"s"
- コンポーネント: 必須 日付の部分を表す文字列です。
- 値: 必須 指定した日付のコンポーネントに設定する値。
- 日付: 必須 標準形式の日付。
- 年: 必須 年は 4 桁で書かれました
- 月: 必須 月。 使用できる値は 1 ~ 12 です。
- 日: 必須 1 日。 使用できる値は 1 ~ 31 です。
- 時間: 必須 時間。 使用できる値は 0 ~ 23 です。
- 分: 必須 分。 使用できる値は 0 ~ 59 です。
- ナノ秒: 必須 ナノ秒の値。 使用できる値は 0 ~ 999999999です。
- タイムゾーン: 必須 日時のタイムゾーン。
2019-10-17T11:55:12Z
- 日付: 必須 変換しようとしている日付です。
zone_date_to_utc​(2019-10-17T11:55:​12 PST
2019-10-17T19:55:12Z
- 日付: 必須 変換しようとしている日付です。
- ゾーン: 必須 日付を変換しようとしているタイムゾーンです。
zone_date_to_utc​(now(), "Europe/Paris")
2021-10-26T15:43:59Z
階層 — オブジェクト objects
- 入力: 必須 確認しようとしているオブジェクトが空です。
is_empty([1, null, 2, 3])
- 入力: 必須 キーと配列のペアのグループ。
arrays_to_objects('sku', explode("id1|id2", '\\|'), 'price', [22.5,14.35])
[{ "sku": "id1", "price": 22.5 }, { "sku": "id2", "price": 14.35 }]
- 入力: 必須 キーと値のペアのフラットなリスト。
{"firstName": "John", "lastName": "Doe"}
- 文字列: 必須 オブジェクトを作成するために解析される文字列。
- 値の区切り: オプション フィールドを値から区切る区切り文字。 デフォルトの区切り文字は
:
. - FIELD_DELIMITER: オプション フィールド値のペアを区切る区切り文字。 デフォルトの区切り文字は
,
.
get()
~と共に機能する str_to_object()
を使用して、文字列内のキーの値を取得します。- 例#1: str_to_object("firstName - John ; lastName - ; - 123 345 7890", "-", ";")
- 例#2: str_to_object("firstName - John ; lastName - ; phone - 123 456 7890", "-", ";").get("firstName")
- 例#1:
{"firstName": "John", "lastName": "Doe", "phone": "123 456 7890"}
- 例#2: "John"
is_set()
関数に置き換えます。- 入力: 必須 ソースデータ内に存在する場合に確認するパス。
null
. これは、フィールドをターゲットスキーマにコピーしない場合に使用します。null
- オブジェクト: 必須 キーの抽出元のオブジェクト。
["book1", "book2"]
- 文字列: 必須 解析する文字列です。
- キー: 必須 値を抽出するキー。
- 値の区切り: 必須 フィールドと値を区切る区切り文字。 次のいずれかの場合、
null
または空の文字列が指定された場合、この値は:
. - FIELD_DELIMITER: オプション フィールドと値のペアを区切る区切り文字。 次のいずれかの場合、
null
または空の文字列が指定された場合、この値は,
.
- マップ: 必須 入力マップデータ。
- キー: 必須 キーは、単一の文字列または文字列配列です。 他のプリミティブ型(データ/数値)が指定されている場合は、文字列として扱われます。
- マップ: 必須 入力マップデータ
- キー: 必須 キーは、単一の文字列または文字列配列です。 他のプリミティブ型(データ/数値)が指定されている場合は、文字列として扱われます。
- キー: 必須 キーは文字列である必要があります。 整数や日付などの他のプリミティブ値が指定された場合、それらは文字列に自動変換され、文字列として扱われます。
- ANY_TYPE: 必須 マップを除く、サポートされている任意の XDM データタイプを参照します。
- オブジェクト: 必須 受け取るオブジェクトまたはオブジェクト配列を指定し、オブジェクト内の属性をキーとして指定できます。
- オブジェクト: 必須 受け取るオブジェクトまたはオブジェクト配列を指定し、オブジェクト内の属性をキーとして指定できます。
オブジェクトのコピーフィーチャーの詳細については、「 below.
階層 — 配列 arrays
- 入力: 必須 の最初の null 以外のオブジェクトを検索する配列です。
- 入力: 必須 最初の要素を検索する配列です。
- 入力: 必須 最後の要素を検索する配列です。
- 配列: 必須 要素を追加する配列。
- VALUES:配列に追加する要素です。
- 配列: 必須 要素を追加する配列。
- VALUES:親配列に追加する配列。
- INCLUDE_NULLS: 必須 応答配列に NULL を含めるかどうかを示す boolean 値です。
- 値: 必須 配列に変換する要素。
[1, 2, 3]
- 入力: 必須 サイズを探しているオブジェクト。
size_of([1, 2, 3, 4])
- 配列: 必須 プロファイルに配列を追加する配列です。
upsert_array_append([123, 456])
- 配列: 必須 プロファイル内の配列を置き換える配列。
upsert_array_replace([123, 456], 1)
階層 — マップ map
- 入力: 必須 の最初の null 以外のオブジェクトを検索するオブジェクト配列。
- キー: 必須 キーは、オブジェクト配列内のフィールド名、オブジェクトは値として指定する必要があります。
- 入力: 必須 の最初の null 以外のオブジェクトを検索するオブジェクト配列。
"{line1 : \"345 park ave\",line2: \"bldg 2\",City : \"san jose\",State : \"CA\",type: \"office\"}"
"{\"firstName\" : \"John\", \"lastName\": \"Doe\"}"
論理演算子 logical-operators
- キー: 必須 照合するキー。
- OPTIONS: 必須 キーと値のペアのフラット化された配列。 オプションで、デフォルト値を末尾に配置できます。
stateCode が「pa」の場合は、「Pennsylvania」です。
stateCode が以下と一致しない場合は、「N/A」となります。
- 式: 必須 評価されるブール式です。
- TRUE_VALUE: 必須 式の値が true の場合に返される値です。
- FALSE_VALUE: 必須 式の値が false の場合に返される値です。
集計 aggregation
- OPTIONS: 必須 互いに比較できる 1 つ以上のオブジェクト。
- OPTIONS: 必須 互いに比較できる 1 つ以上のオブジェクト。
タイプコンバージョン type-conversions
- 文字列: 必須 BigInteger に変換する文字列です。
- 文字列: 必須 倍精度浮動小数点型 (Double) の値に変換する文字列を指定します。
- 文字列: 必須 浮動小数点型 (Float) に変換する文字列を指定します。
- 文字列: 必須 整数に変換する文字列を指定します。
JSON 関数 json
- 文字列: 必須 シリアル化を解除する JSON 文字列。
特別な操作 special-operations
guid
guid()
guid()
c7016dc7-3163-43f7-afc7-2e1c9c206333
fpid_to_ecid
- 文字列: 必須 ECID に変換する FPID 文字列。
fpid_to_ecid(STRING)
fpid_to_ecid("4ed70bee-b654-420a-a3fd-b58b6b65e991")
"28880788470263023831040523038280731744"
ユーザーエージェントの関数 user-agent
以下の表に示すユーザーエージェント関数は、次のいずれかの値を返すことができます。
- 電話 — 小さい画面を持つモバイルデバイス(一般的に < 7")
- モバイル — 未識別のモバイルデバイス。 このモバイルデバイスは、eReader、タブレット、電話、時計などです。
デバイスフィールドの値の詳細については、 デバイスフィールド値のリスト 」を参照してください。
- USER_AGENT: 必須 ユーザーエージェント文字列。
- USER_AGENT: 必須 ユーザーエージェント文字列。
- USER_AGENT: 必須 ユーザーエージェント文字列。
- USER_AGENT: 必須 ユーザーエージェント文字列。
- USER_AGENT: 必須 ユーザーエージェント文字列。
- USER_AGENT: 必須 ユーザーエージェント文字列。
- USER_AGENT: 必須 ユーザーエージェント文字列。
- USER_AGENT: 必須 ユーザーエージェント文字列。
Analytics 関数 analytics
- EVENT_STRING: 必須 コンマ区切りの Analytics イベント文字列。
- EVENT_NAME: 必須 抽出するイベント名と ID。
- EVENT_STRING: 必須 コンマ区切りの Analytics イベント文字列。
- EVENT_NAME: 必須 値の抽出元のイベント名。
- PRODUCTS_STRING: 必須 Analytics の製品文字列。
- PRODUCTS_STRING: 必須 Analytics の製品文字列。
- PRODUCTS_STRING: 必須 Analytics の製品文字列。
- PRODUCTS_STRING: 必須 Analytics の製品文字列。
- PRODUCTS_STRING: 必須 Analytics の製品文字列。
- EVENT_NAME: 必須 値の抽出元のイベント名。
- PRODUCTS_STRING: 必須 Analytics の製品文字列。
- EVAR名: 必須 抽出するeVar名。
オブジェクトのコピー object-copy
オブジェクトのコピー機能を使用すると、マッピングを変更せずに、オブジェクトの属性を自動的にコピーできます。 例えば、ソースデータの構造が次のようになっているとします。
address{
line1: 4191 Ridgebrook Way,
city: San Jose,
state: California
}
と以下の XDM 構造
addr{
addrLine1: 4191 Ridgebrook Way,
city: San Jose,
state: California
}
マッピングは次のようになります。
address -> addr
address.line1 -> addr.addrLine1
上記の例では、 city
および state
また、属性は実行時に自動的に取り込まれます。 address
オブジェクトが addr
. 以下を作成する場合、 line2
属性を XDM 構造の中に追加し、入力データにも line2
(内) address
オブジェクトの場合は、マッピングを手動で変更する必要なく、自動的に取り込まれます。
自動マッピングが確実に機能するようにするには、次の前提条件を満たす必要があります。
- 親レベルのオブジェクトをマッピングする必要がある。
- 新しい属性が XDM スキーマで作成されている必要があります。
- 新しい属性には、ソーススキーマと XDM スキーマで一致する名前が必要です。
いずれかの前提条件が満たされない場合は、データ準備を使用してソーススキーマを XDM スキーマに手動でマッピングする必要があります。
付録
次に、Data Prep マッピング関数の使用に関する追加情報を示します
特殊文字 special-characters
次の表に、予約文字と、対応するエンコード済み文字の一覧を示します。
デバイスフィールドの値 device-field-values
次の表に、デバイスフィールドの値のリストと、対応する説明の概要を示します。
useragents
匿名化ソフトウェアによって変更されたuseragents
には、デバイスに関する情報が含まれていません。useragent
文字列。コードサンプル code-samples
map_get_values map-get-values
code language-json |
---|
|
map_has_keys map_has_keys
code language-json |
---|
|
add_to_map add_to_map
code language-json |
---|
|
object_to_map object_to_map
構文 1
code language-json |
---|
|
構文 2
code language-json |
---|
|
構文 3
code language-json |
---|
|
array_to_map array_to_map
code language-json |
---|
|