すべてのプロダクト
Search
ドキュメントセンター

DataWorks:Sensors Data データソース

最終更新日:Jan 11, 2025

DataWorks では、Sensors Data データソースにデータを書き込むための Sensors Data Writer を提供しています。このトピックでは、Sensors Data データソースへのデータ同期機能について説明します。

制限事項

  • Sensors Data データソースは、中国 (深セン) リージョンでのみサポートされています。今後、他のリージョンでもサポートされる予定です。

  • DataWorks は、Sensors Data データソースからデータを読み取るための専用の Reader を提供していません。Sensors Data データソースのストレージタイプに基づいて、Hive Reader または HDFS Reader を使用してデータを読み取ることができます。

データ同期タスクの開発

データ同期タスクのエントリポイントと設定手順については、以下のセクションを参照してください。パラメータ設定については、タスクの設定タブにある各パラメータのヒントをご覧ください。

データソースの追加

特定のデータソースとの間でデータを同期するデータ同期タスクを設定する前に、DataWorks にデータソースを追加する必要があります。詳細については、「データソースの追加と管理」をご参照ください。

単一テーブルのデータを同期するバッチ同期タスクの設定

付録:コードとパラメータ

付録:コードエディタを使用したバッチ同期タスクの設定

コードエディタを使用してバッチ同期タスクを設定する場合は、コードエディタの形式要件に基づいて、関連するデータソースのリーダーとライターのパラメータを設定する必要があります。形式要件の詳細については、「コードエディタを使用したバッチ同期タスクの設定」をご参照ください。コードエディタでのリーダーとライターのパラメータの設定の詳細を以下に示します。

Sensors Data 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", // アイテムタイプ。この例では、itemType パラメータは course に設定されています。
                    "typeIsColumn": false, // itemType パラメータの値を 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,// スロットリングを有効にするかどうかを指定します。値 false はスロットリングが無効であることを示し、値 true はスロットリングが有効であることを示します。mbps パラメータは、throttle パラメータが true に設定されている場合にのみ有効になります。
                        "concurrent": 2, // 並列スレッドの最大数。
                        "mbps":"12"// 最大転送速度。単位:MB/s。
        }
    }
}

Sensors Data Writer のコードのパラメータ

パラメータ

説明

必須

デフォルト値

type

Sensors Data データソースに書き込まれるデータのタイプ。有効な値:trackuseritem。それぞれ Sensors Data のイベントユーザープロパティを示します。type パラメータの値によって、データタイプの定義に使用できるパラメータが決まります。

はい

デフォルト値なし

type パラメータを track に設定した場合、以下のパラメータを設定できます。

  • distinctIdColumn (オプション):Sensors Data のイベントの個別 ID を格納するフィールドの名前。このフィールドは、column パラメータでイベントの属性としても指定する必要があり、属性値を空にすることはできません。

  • eventName (オプション):Sensors Data のイベントの名前。

  • isLoginId (オプション):イベントの個別 ID を格納するフィールドがログオン ID も指定するかどうかを指定します。ログオン ID は、Sensors Data プラットフォームにログオンするユーザーを一意に識別します。有効な値:true と false。デフォルト値:true。

サンプルコード:

"track": {  
"distinctIdColumn": "track_id",  
"eventName": "testEventName", 
"isLoginId": true
}

type パラメータを user に設定した場合、以下のパラメータを設定できます。

  • distinctIdColumn (オプション):Sensors Data のユーザーの個別 ID を格納するフィールドの名前。このフィールドは、column パラメータでユーザーの属性としても指定する必要があり、属性値を空にすることはできません。

  • isLoginId (オプション):イベントの個別 ID を格納するフィールドがログオン ID も指定するかどうかを指定します。ログオン ID は、Sensors Data プラットフォームにログオンするユーザーを一意に識別します。有効な値:true と false。デフォルト値:true。

サンプルコード:

"user": {
"distinctIdColumn": "user_id", 
"isLoginId": true
}

type パラメータを item に設定した場合、以下のパラメータを設定できます。

  • itemIdColumn (オプション):Sensors Data のプロパティの個別 ID を格納するフィールドの名前。このフィールドは、column パラメータでプロパティの属性としても指定する必要があり、属性値を空にすることはできません。

  • itemType (オプション):Sensors Data のプロパティのアイテムタイプを格納するフィールドの名前。このフィールドが column パラメータにも指定されている場合は、フィールドを空にせず、typeIsColumn パラメータを true に設定します。そうでない場合は、定数値がアイテムタイプとして使用されます。

  • typeIsColumn (オプション):itemType パラメータの値を column パラメータの列として指定する必要があるかどうかを指定します。有効な値:true と false。デフォルト値:true。

サンプルコード:

"item": {
"itemIdColumn": "item_id", 
"itemType": "testItem",
"typeIsColumn": false
}

column

ソーステーブルのフィールドとデスティネーションテーブルのフィールド間のマッピング。マッピングは、name パラメータと index パラメータによって決定されます。

  • name (必須):デスティネーションテーブルのフィールドの名前。

  • index (必須):ソーステーブルのフィールドのシーケンスを示すインデックス。たとえば、ソーステーブルの最初のフィールドはインデックス 0 で示されます。

はい

デフォルト値なし

sdkDataAddress

データが格納される URL。これは、Sensors Data がデータを受信する URL です。URL は http://localhost:8106/sa?project=default 形式です。URL を取得するには、Sensors Data プラットフォームにログオンし、次の手順を実行します。トップナビゲーションバーで、[その他] > [基本設定] を選択します。[基本設定] タブで、[データ統合] をクリックします。表示されるページの [サーバートラッキング] セクションで、[データの受信アドレスをコピー] をクリックします。

はい

デフォルト値なし

その他のパラメータ

DataWorks では、コードエディタを使用して Sensors Data Writer を設定する際に、データ型コンバータを指定できます。Sensors Data に書き込まれるデータのデータ型を変換するために使用するデータ型コンバータのタイプを指定できます。次の表に、サポートされているコンバータのタイプとパラメータ設定の例を示します。

コンバータタイプ

機能説明

設定例

パラメータの説明

Date2Str

DATE タイプのデータを STRING タイプのデータに変換します。

// サンプルコード
"dataConverters":[
    {
        "type": "Date2Str",
        "param": {
            "pattern":"yyyy-MM-dd"
        }
    }
]

pattern (オプション):変換後のデータの日付形式。

Date2Long

DATE タイプのデータを LONG タイプのデータに変換します。

"dataConverters":[
    {
        "type": "Date2Long"
    }
]

該当なし。

Number2Str

NUMBER タイプのデータを STRING タイプのデータに変換します。

// サンプルコード
"dataConverters":[
    {
        "type": "Number2Str"
    }
]

該当なし。

Str2Long

STRING タイプのデータを LONG タイプのデータに変換します。

// サンプルコード
"dataConverters":[
    {
        "type": "Str2Long"
    }
]

該当なし。

Str2Date

STRING タイプのデータを DATE タイプのデータに変換します。

// サンプルコード
"dataConverters":[
    {
        "type": "Str2Date",
        "param": {
            "pattern":"yyyy-MM-dd",
            "formats":["yyyyMMdd","yyyyMMddHHmmss"]
        }
    }
]
  • pattern (オプション):変換後のデータの日時形式。有効な値:yyyy-MM-ddyyyy-MM-dd HH:mm:ssyyyy-MM-dd HH:mm:ss.SSS yyyy-MMyyyyMMyyyyMMddHHmmssyyyyMMddHHmmssSSS

  • formats (オプション):STRING タイプのデータでサポートされている日時形式。このパラメータを使用すると、pattern パラメータの値が要件を満たしていない場合に、より多くの日時形式を指定できます。

BigInt2Date

BIGINT タイプのデータを DATE タイプのデータに変換します。

// サンプルコード
"dataConverters":[
    {
        "type": "BigInt2Date"
    }
]

該当なし。

Str2Int

STRING タイプのデータを INT タイプのデータに変換します。

// サンプルコード
"dataConverters":[
    {
        "type": "Str2Int"
    }
]

該当なし。

Str2Double

STRING タイプのデータを DOUBLE タイプのデータに変換します。

// サンプルコード
"dataConverters":[
    {
        "type": "Str2Double"
    }
]

該当なし。

Str2BigDecimal

STRING タイプのデータを BIGDECIMAL タイプのデータに変換します。

// サンプルコード
"dataConverters":[
    {
        "type": "Str2BigDecimal"
    }
]

該当なし。

IfNull2Default

NULL 値を default パラメータで指定された定数値に変換し、IfNull2Default コンバータに埋め込まれたサブコンバータを使用して、定数値を指定されたデータタイプのデータに変換します。

// サンプルコード
// NULL 値または空の文字列を 2021-07-01 文字列に変換し、文字列を yyyy-MM-dd 形式の時間に変換し、時間を LONG タイプのミリ秒単位のタイムスタンプに変換します。
"dataConverters":[
    {
        "type": "IfNull2Default",
        "param": {
            "default": "2021-07-01",
            "dataConverters": [
                {
                    "type": "Str2Date",
                    "param": {
                        "pattern":"yyyy-MM-dd"
                    }
                },
                {
                    "type": "Date2Long"
                }
            ]
        }
    }
]

dataConverters:default 定数値を指定されたデータタイプのデータに変換するために使用されるサブコンバータ。複数の埋め込みサブコンバータを指定して、複数回データ型変換を実行できます。

NotNull2Null

NULL 以外の値を NULL 値に変換します。

// サンプルコード
"dataConverters":[
    {
        "type": "NotNull2Null"
    }
]

該当なし。

IfElse

フィールド値が指定された IF 条件を満たしているかどうかを確認します。フィールド値が条件を満たしている場合、戻り値は value パラメータで示されます。そうでない場合、戻り値は else パラメータで示されます。

// サンプルコード
"dataConverters":[
                  {
                    "type": "IfElse",
                    "param": {
                      "if": "return true;",
                      "value":"if(resolvedValues.get(\"check_card_type\") == 'NAN' && value == null ){return true;} if(resolvedValues.get(\"check_card_type\") == 'ID card'){  if(java.util.regex.Pattern.compile(regEx).matcher(value).find() && java.lang.Integer.parseInt(value.substring(6, 10)) >=1900 && java.lang.Integer.parseInt(value.substring(6, 10)) <= nowYear){return true;}} return null;",
                      "sharedPool":"var nowYear = java.time.LocalDate.now().getYear(); var regEx = \"(110|120|310|510|150|650|540|640|450|230|220|210|120|140|630|370|410|320|340|320|340|330|350|360|430|420|440|460|620|610|520|530)\\\\d{7}(0[1-9]|1[0-2])(0[1-9]|[1-2][0-9]|3[0-1])\\\\d{3}(\\\\d|X)\"; "
                    }
                  }
                ]
  • if:IF 条件。入力された情報は JavaScript で解析されます。結果が BOOLEAN タイプであることを確認してください。Sensors Data データソースに書き込まれるフィールド、プラグインによって取得された値、データコンバータの param パラメータ、およびマップデータ構造で解析されたフィールドを式に渡すことができます。これらの値を取得するには、targetColumnName、value、param、および resolvedValues パラメータを使用できます。

  • value:IF 条件が満たされた場合の戻り値。入力された情報は JavaScript で解析されます。Sensors Data データソースに書き込まれるフィールド、プラグインによって取得された値、データコンバータの param パラメータ、およびマップデータ構造で解析されたフィールドを式に渡すことができます。これらの値を取得するには、targetColumnName、value、param、および resolvedValues パラメータを使用できます。

  • else:IF 条件が満たされない場合の戻り値。入力された情報は JavaScript で解析されます。Sensors Data データソースに書き込まれるフィールド、プラグインによって取得された値、データコンバータの param パラメータ、およびマップデータ構造で解析されたフィールドを式に渡すことができます。これらの値を取得するには、targetColumnName、value、param、および resolvedValues パラメータを使用できます。

  • sharedPool:if、value、および else パラメータで使用できる変数または定数値。入力された情報は JavaScript で解析されます。

IfNull2Column

NULL 値を targetColumnName パラメータの値に変換します。

// サンプルコード
"dataConverters": [
    {
        "type": "IfNull2Column",
        "param": {
            "targetColumnName":"age1"
        }
    }
]

targetColumnName:Sensors Data のフィールドの名前。

重要

IfNull2Column コンバータが適用されるフィールドを設定する前に、targetColumnName パラメータで指定されたフィールドを設定してください。