DataWorks Data Integration を使用すると、Sensors Data Writer を用いて Sensors Data へデータを書き込むことができます。本トピックでは、DataWorks における Sensors Data のデータ同期機能について説明します。
制限事項
現在、Sensors Data データソースは中国 (深セン) リージョンでのみ追加可能です。他のリージョンへの対応は、近日中に提供予定です。
Sensors Data からデータを直接読み取ることはできません。Sensors Data のデータストレージ形式に応じて、Hive や HDFS などのプラグインを使用してデータを読み取る必要があります。
データソースの追加
DataWorks で同期タスクを開発する前に、データソース管理の手順に従って、必要なデータソースを DataWorks に追加する必要があります。データソースを追加する際には、DataWorks コンソールで パラメーターの説明を確認し、各パラメーターの意味を理解してください。
データ同期タスクの開発
同期タスクの設定入口および設定手順については、以下の構成ガイドをご参照ください。
単一テーブルオフライン同期タスクの構成
手順については、「コードエディタによるタスクの構成」をご参照ください。
コードエディタで使用可能なすべてのパラメーターおよびサンプルスクリプトについては、「付録 1:スクリプトデモおよびパラメーターの説明」をご参照ください。
付録 1:スクリプトデモおよびパラメーターの説明
コードエディタによるバッチ同期タスクの構成
コードエディタを使用してバッチ同期タスクを構成する場合、統一されたスクリプトフォーマット要件に基づき、スクリプト内で関連パラメーターを設定する必要があります。詳細については、「コードエディタによるタスクの構成」をご参照ください。以下では、コードエディタを使用してバッチ同期タスクを構成する際に、データソースに対して設定する必要があるパラメーターについて説明します。
Writer スクリプトのデモ
{
"type": "job",
"steps": [
{
"stepType": "mysql",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "sahistory", // プラグイン名。
"parameter": {
"type": "item", // Sensors Data へ書き込むデータの種類。有効な値:track、user、item。これらは Sensors Data のイベント、ユーザー、プロパティに対応します。
"item": { // type パラメーターが item に設定されているため、ここに item パラメーターを定義する必要があります。
"itemType": "course", // アイテムの種類を course として定義します。
"typeIsColumn": false, // アイテムの種類が column パラメーター内に含まれるかどうかを指定します。
"itemIdColumn": "course_id" // アイテム ID のフィールド名を定義します。
},
"column": [ // ソーステーブルと宛先テーブル間のフィールドマッピングを定義します。
{
"name": "course_id", // 宛先テーブル内の列名は course_id です。
"index": 0 // ソーステーブルの最初の列から取得したデータを、宛先テーブルの course_id 列に書き込みます。
},
{
"name": "course_name", // 宛先テーブル内の列名は course_name です。
"index": 1 // ソーステーブルの 2 番目の列から取得したデータを、宛先テーブルの course_name 列に書き込みます。
},
{
"name": "course_schedule", // 宛先テーブル内の列名は course_schedule です。
"index": 2 // ソーステーブルの 3 番目の列から取得したデータを、宛先テーブルの course_schedule 列に書き込みます。
"dataConverters":[ // データ型変換を行うコンバーター。
{
"type": "Long2Date" // コンバーターの種類。
}
]
}
],
"sdkDataAddress": "http://bigdata-project.datasink.sensorsdata.cn/sa?project=default&token=1111111111111111", // データストレージパス。これは Sensors Data がデータを受信するために使用する URL です。
},
"name": "Writer",
"category": "writer"
}
],
},
"setting": {
"errorLimit": {
"record": "0" // エラーとなるレコード数。
},
"speed": {
"throttle":true,// throttle が false の場合、mbps パラメーターは無効となり、速度制限は無効化されます。throttle が true の場合、速度制限が有効になります。
"concurrent":2, // ジョブの同時実行数。
"mbps":"12"// 速度制限レート。ここで、1 mbps = 1 MB/s です。
}
}
}Writer スクリプトのパラメーター
パラメーター | 説明 | 必須 | デフォルト |
type | Sensors Data システムへ書き込むデータの種類。有効な値: track、user、item。これらは Sensors Data システムの イベント、ユーザー、プロパティ に対応します。type パラメーターの値によって、データ種別に応じたパラメーター定義が異なります。 | はい | なし |
type が track に設定されている場合、以下のオプションパラメーターが利用可能です:
以下のコードは例です: | |||
type が user に設定されている場合、以下のオプションパラメーターが利用可能です:
以下のコードは例です: | |||
type が item に設定されている場合、以下のオプションパラメーターが利用可能です:
以下のコードは例です: | |||
column | index および name パラメーターを使用して、ソーステーブルと宛先テーブルのフィールド間のマッピングを定義します。
| はい | なし |
sdkDataAddress | データストレージパス。これは Sensors Data がデータを受信するために使用する URL です。URL の形式は次のとおりです: | はい | なし |
付録 2:その他のパラメーター
Sensors Data Writer を使用すると、宛先データソースへ書き込む前に、フィールドのデータ型を変換できます。これを行うには、データコンバーター(dataConverters)をスクリプトに追加し、コンバーターの種類(type)を定義します。以下の表では、コンバーターの種類、パラメーター、および例を示します。
コンバーターの種類 | 説明 | 例 | パラメーターの説明 |
Date2Str | Date 型のデータを String 型に変換します。 | | pattern(オプション):Date 型から変換後の String 型データの時刻フォーマット。 |
Date2Long | Date 型のデータを Long 型に変換します。 | | なし |
Number2Str | 数値型のデータを String 型に変換します。 | | なし |
Str2Long | String 型のデータを Long 型に変換します。 | | なし |
Str2Date | String 型のデータを Date 型に変換します。 | |
|
BigInt2Date | BigInt 型のデータを Date 型に変換します。 | | なし |
Str2Int | String 型のデータを Int 型に変換します。 | | なし |
Str2Double | String 型のデータを Double 型に変換します。 | | なし |
Str2BigDecimal | String 型のデータを BigDecimal 型に変換します。 | | なし |
IfNull2Default | フィールドの値が null の場合、default パラメーターで定義された定数をフィールドの値として設定します。また、IfNull2Default コンバーター内に他のコンバーターをネストすることで、定数をさらに目的のデータ型に変換できます。 | | dataConverters:default パラメーターのデフォルト値を、type パラメーターで定義された型に変換するデータコンバーター。複数の dataConverters をネストすることで、複数のデータ変換を実行できます。 |
NotNull2Null | フィールドの値が null でない場合、その値を null に変換します。 | | なし |
IfElse | フィールドの値が条件を満たすかどうかをチェックする if 条件式です。条件が満たされた場合、value パラメーターで定義された値が返されます。条件が満たされなかった場合、else パラメーターで定義された値が返されます。 | |
|
IfNull2Column | フィールドの値が null の場合、targetColumnName パラメーターで指定された列の値を、現在のフィールドの値として使用します。 | | targetColumnName:Sensors Data へインポートする列の名称。 重要 targetColumnName で指定された列は、IfNull2Column コンバーターを使用する列よりも前に設定されている必要があります。 |