データテーブルAPI
呼び出し方法は、Open APIドキュメントの呼び出し方法の説明を参照してください。
機能紹介
-
データテーブルAPIを使うと、画面上で行うデータテーブルの操作の一部を実行でき、データテーブルに対する操作を自動化したいというニーズに対応できます。
-
データテーブルAPIでは、データテーブルに対して次の操作を実行できます:
- データテーブルの作成
- 既存のデータテーブルの更新
- データテーブルとメインプロパティの関連付け
- データテーブルとメインプロパティの関連付けの解除
-
データテーブルの作成:
まだ存在しないデータテーブルを作成して最初のファイルをアップロードし、データテーブルの各フィールドの名前とタイプを指定できます。
- 既存のデータテーブルの更新:
データテーブルの内容の更新のみに対応しています。データテーブルのフィールドの追加・削除やタイプの変更には対応していません。
テーブル全体の内容を置き換える置換え更新、または既存データに基づく増分更新を実行できます。
- データテーブルとメインプロパティの関連付け:
既存のデータテーブルをメインプロパティに関連付けて、参照テーブルのプロパティを生成できます。
- データテーブルとメインプロパティの関連付けの解除:
関連付け済みのデータテーブルとメインプロパティの関連付けを解除し、生成済みの参照テーブルのプロパティを削除できます。
- データテーブルの詳細は、データテーブルを参照してください
- 参照テーブルのプロパティの詳細は、仮想プロパティと参照テーブルのプロパティを参照してください
1. データテーブルの作成
データテーブルの作成は、次の2つのステップに分かれます:
- ファイルのアップロード
- アップロードしたファイルを使ってデータテーブルを作成
1.1 ファイルのアップロード
アップロードできるファイルのサイズ上限は100Mで、ファイルタイプはexcelとcsvに対応しています
インターフェースURL
/open/datatable/uploadFile
リクエストメソッド
POST
Content-Type
multipart/form-data
リクエストQueryパラメータ
| パラメータ名 | 例 | パラメータタイプ | 必須 | パラメータの位置 | パラメータの説明 |
|---|---|---|---|---|---|
| token | xxx | String | はい | クエリキー | |
| projectId | 0 | number | はい | query | 作成するデータテーブルが属するプロジェクトのID。 |
| file | "/path/to/my_datatable.xls" | file | はい | body | multipart/form-data; アップロードする表のcsv/excel。先頭列がプライマリキー |
curl --location --request POST 'http://xxx.com/xxx/open/datatable/uploadFile?projectId=390' \
--form 'file=@"/path/to/my_datatable.xls"'
出力パラメータ
fileId(このfileIdは次のステップ、つまりデータテーブルの作成で使用します)
1.2 データテーブルの作成
インターフェースURL
/open/datatable/createDatatable
リクエストメソッド
POST
Content-Type
application/json
リクエストQueryパラメータ
| パラメータ名 | パラメータタイプ | 必須かどうか | パラメータの位置 | 説明 |
| token | String | はい | クエリキー | |
| projectId | number | はい | query | 作成するデータテーブルが属するプロジェクトのID。 |
| fileId | string | はい | body | アップロードしたファイルのid |
| datatableName | string | はい | body | データテーブル名 小文字のアルファベットで始まり、小文字のアルファベット、数字、アンダースコアを使用できます |
datatableColumns | array | はい | body | 各列の列名と対応するデータタイプ 列名はアルファベットで始まる必要があり、アルファベット、数字、アンダースコア「_」を使用できます。長さは最大50文字です |
| columnName | string | はい | カラム名 | |
| dataType | string | はい | 列のデータタイプ |
コード例
curl --location --request POST 'http://xxx.com/xxx/open/datatable/createDatatable?projectId=390' \
--header 'Content-Type: application/json' \
--data-raw '{
"fileId": "xxxxxxx",
"datatableName": "xxx",
"datatableColumns": [
{
"columnName": "aaa",
"dataType": "string"
}
]
}'
出力パラメータ
| パラメータ名 | データタイプ | 説明 |
|---|---|---|
| succeededRowCount | number | 成功行数 |
| failedRowCount | number | 失敗行数 |
2. 既存のデータテーブルの更新
インターフェースURL
/open/datatable/updateDatatable
リクエストメソッド
POST
Content-Type
application/json
リクエストQueryパラメータ
| パラメータ名 | データタイプ | 必須 | パラメータの位置 | 説明 |
|---|---|---|---|---|
| token | String | はい | クエリキー | |
| projectId | number | はい | query | 作成するデータテーブルが属するプロジェクトのID。 |
| datatableName | string | はい | query | データテーブル名 |
| updateType | enum(INCR_UPDATE/REPL_UPDATE) | はい | query | 更新タイプ。INCR_UPDATEは増分更新、REPL_UPDATEはテーブル全体の内容を置き換える置換え更新 |
| file | file | はい | body | multipart/form-data; アップロードする表のcsv/excel。先頭列がプライマリキー |
コード例
curl -X POST 'http://xxx.com/open/datatable/updateDatatable?projectId=11&token=YOUR_TOKEN&datatableName=city_dim&updateType=INCR_UPDATE'\
--form "file=@/path/to/file"
3. データテーブルとメインプロパティの関連付け
インターフェースURL
/open/datatable/bindAssociatedProperty
リクエストメソッド
POST
Content-Type
application/json
リクエストQueryパラメータ
| パラメータ名 | データタイプ | 必須 | パラメータの位置 | 説明 |
|---|---|---|---|---|
| token | String | はい | クエリキー | |
| projectId | Number | はい | query | 作成するデータテーブルが属するプロジェクトのID。 |
| datatableName | String | はい | body | データテーブル名 |
| associatedPropertyName | String | はい | body | 関連プロパティ名 |
| associatedPropertyTableType | String(user/event) | はい | body | 関連プロパティのタイプ |
| timestampJoinFormat | Enum | いいえ | body | メインプロパティが時間タイプ(timestamp)の場合、タイムスタンプを指定の粒度で計算してから参照テーブルのプロパティをバインドできます |
timestampJoinFormatは次の粒度タイプに対応しています。
| 値 | 説明 |
|---|---|
| DATE_STR_YEAR | プロパティを"yyyy"形式の文字列にフォーマットしてから参照テーブルのプロパティをバインドします |
| DATE_STR_MONTH | プロパティを"yyyy-MM"にフォーマットしてから参照テーブルのプロパティをバインドします |
| DATE_STR_DAY | プロパティを"yyyy-MM-dd"にフォーマットしてから参照テーブルのプロパティをバインドします |
| DATE_STR_HOUR | プロパティを"yyyy-MM-dd HH"にフォーマットしてから参照テーブルのプロパティをバインドします |
| DATE_STR_MINUTE | プロパティを"yyyy-MM-dd HH:mm"にフォーマットしてから参照テーブルのプロパティをバインドします |
| DATE_STR_SECOND | プロパティを"yyyy-MM-dd HH:mm:ss"にフォーマットしてから参照テーブルのプロパティをバインドします |
| DATE_STR_MILLISECOND | プロパティを"yyyy-MM-dd HH:mm:ss.SSS"にフォーマットしてから参照テーブルのプロパティをバインドします |
コード例
curl --location --request POST 'http://xxx.com/xxx/open/datatable/bindAssociatedProperty?projectId=390' \
--header 'Content-Type: application/json' \
--data-raw '{
"datatableName": "xxxxxxx",
"associatedPropertyName": "aaa",
"associatedPropertyTableType": "user",
"timestampJoinFormat": "DATE_STR_YEAR"
}'
出力パラメータ
| パラメータ名 | データタイプ | 説明 |
|---|---|---|
| dimensionProperties | Array | |
| columnName | String | 参照テーブルのプロパティ名 |
| selectType | String | 参照テーブルのデータタイプ |
4. データテーブルとメインプロパティの関連付けの解除
インターフェースURL
/open/datatable/unbindAssociatedProperty
リクエストメソッド
POST
Content-Type
application/json
リクエストQueryパラメータ
| パラメータ名 | データタイプ | 必須 | パラメータの位置 | 説明 |
|---|---|---|---|---|
| token | String | はい | クエリキー | |
| projectId | Number | はい | query | 作成するデータテーブルが属するプロジェクトのID。 |
| datatableName | String | はい | body | データテーブル名 |
| associatedPropertyName | String | はい | body | 関連プロパティ名 |
| associatedPropertyTableType | String(user/event) | はい | body | 関連プロパティのタイプ |
コード例
curl --location --request POST 'http://xxx.com/xxx/open/datatable/unbindAssociatedProperty?projectId=390' \
--header 'Content-Type: application/json' \
--data-raw '{
"datatableName": "xxxxxxx",
"associatedPropertyName": "aaa",
"associatedPropertyTableType": "user"
}'

