外部ユーザープロパティの関連付けインポート機能
1. はじめに
場合によっては、外部のユーザーデータをAEクラスターにインポートする必要があるものの、データ内のユーザー識別子がAEシステムの#account_idや#distinct_idではないことがあります。たとえば、携帯電話番号、身分証明書番号、またはその他の識別IDを主キーとするデータです。このようなデータをユーザープロパティとしてAEシステムにインポートする場合は、update_user_by_foreignkeyコマンドで関連付けを設定し、外部のユーザープロパティをAEシステムに更新する必要があります。現在、dataxが対応しているすべてのデータソースに対応しています:
2. 使用方法
2.1 コマンドの説明
データインポートのコマンドは次のとおりです:
ta-tool update_user_by_foreignkey -conf <config files> [--date xxx]
2.2 コマンドパラメータの説明
2.2.1 -conf
渡すパラメータはインポートタスクの設定ファイルのパスです。1つのタスクが1つの設定ファイルに対応します。複数のタスクの同時インポートに対応しており、ワイルドカードも使用できます。例:/data/config/*または./config/*.json
2.2.2 --date
オプションパラメータ--date:任意。データの日付を表すパラメータで、時間マクロはこの基準時刻に基づいて置換されます。省略可能で、省略した場合はデフォルトで現在の日付が使用されます。形式はYYYY-MM-DDです。時間マクロの具体的な使用方法は、時間マクロの使用方法を参照してください
2.3 時間マクロの使用方法
設定ファイル内では、時間マクロを使って時間パラメータを置換できます。ta-toolツールはインポートの開始時刻を基準に、時間マクロのパラメータに基づいて時間のオフセットを計算し、設定ファイル内の時間マクロを置換します。対応している時間マクロの形式:@[{yyyyMMdd}], @[{yyyyMMdd}-{nday}], @[{yyyyMMdd}+{nday}]など
-
yyyyMMddは、JavaのdateFormatで解析できる任意の日付形式に置き換えられます。例:yyyy-MM-dd HH:mm:ss.SSS,yyyyMMddHH000000 -
nは任意の整数で、時間のオフセット値を表します
-
dayは時間のオフセット単位を表し、次のいずれかを指定できます:
day,hour,minute,week,month -
例:現在時刻が
2018-07-01 15:13:23.234であるとします@[{yyyyMMdd}]は20180701に置換されます@[{yyyy-MM-dd}-{1day}]は2018-06-30に置換されます@[{yyyyMMddHH}+{2hour}]は2018070117に置換されます@[{yyyyMMddHHmm00}-{10minute}]は20180701150300に置換されます
3. 機能の説明
3.1 設定例
{
"job": {
"content": [{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "username",
"password": "password",
"connection": [
{
"querySql": [
"SELECT card_id, property1, property2,property3 FROM table1;"
],
"jdbcUrl": [
"jdbc:mysql://ip:port/database"
]
}
]
}
},
"writer": {
"parameter": {
"appid": "6f9e64da5bc74792b9e9c1db4e3e3822",
"column": [{
"type": "string",
"name": "card_id"
},
{
"type": "string",
"name": "property1"
},
{
"type": "string",
"name": "property2"
},
{
"type": "double",
"name": "property3"
}
],
"joinkey":{
"importDataKey": ["card_id"],
"taUserTableKey": ["card_id"]
}
}
}
}]
}
}
3.2 パラメータの説明
3.2.1 readerセクション
- readerの設定は、dataxが対応しているreaderと同じです
3.2.2 writerセクション
-
appid
- 説明:対応するプロジェクトのappid。
- 必須:はい
- デフォルト値:なし
-
column
- 説明:読み取るフィールドのリストです。
typeでデータのタイプを指定し、nameでreaderの対応する位置の列、つまりAEシステムにインポートする際のプロパティ名を指定します。
- 説明:読み取るフィールドのリストです。
ユーザーはColumnフィールドの情報を指定できます。設定は次のとおりです:
[
{
"type": "double",
"name": "property1"
},
{
"type": "string",
"name": "property2"
},
{
"type": "bigint",
"name": "property3"
}
]
-
joinkey.importDataKey
- 説明:設定情報のwriterのcolumnを関連付けの列名とします。
- 必須:はい
- デフォルト値:なし
-
joinkey.taUserTableKey
- 説明:AEシステムのuserテーブルで関連付けに使用する列名です。
- 必須:はい
- デフォルト値:なし
3.3 型変換
| DataX内部型 | HIVEデータタイプ |
|---|---|
| Long | TINYINT,SMALLINT,INT,BIGINT |
| Double | FLOAT,DOUBLE |
| String | STRING,VARCHAR,CHAR |
| Boolean | BOOLEAN |
| Date | DATE,TIMESTAMP |

