データ登録ガイド
Revision: 3.1.0-14594-df57d806
1 はじめに
1.1 本書の構成
本書では、GridDB Cloudのデータ登録について説明します。各章の内容は次のとおりです。
はじめに
本書の構成及び用語について説明します。データ登録ツール
データ登録ツールについて説明します。データ登録の流れ
GridDB Cloudへのデータ登録の流れを説明します。登録先コンテナ作成
登録先のコンテナの作成方法について説明します。入力ファイル作成
データ登録を行う入力ファイルについて説明します。単一コンテナへのデータ登録
単一コンテナへのデータ登録の方法について説明します。複数コンテナへのデータ登録
複数コンテナへのデータ登録の方法について説明します。登録可能なデータ型
本書のデータ登録で用いているデータ登録ツールで登録可能なデータ型について説明します。
1.2 用語の説明
本書で用いられる用語の説明です。
| 用語 | 意味 |
|---|---|
| curlコマンド | URLを指定してデータを取得・送信するためのコマンドラインツール |
| jqコマンド | JSONデータを整形・抽出・変換するためのコマンドラインツール |
| シェルスクリプト | 複数のコマンドをまとめて自動実行するためのLinux系のスクリプトファイル |
| PowerShell | Windows環境で利用できるコマンドラインシェルおよびスクリプト言語 |
2 データ登録ツール
2.1 動作環境
データ登録ツールは以下の環境にて実行することができます。
| CPU | x64プロセッサ 2.0GHz 以上(最小) |
| メモリ | 1.0GB 以上(最小) |
| ディスク | 登録するデータの2倍以上の容量 (最小) |
| OS | Windows 11 (64bit版) Red Hat Enterprise Linux 8.10 (64bit版) Red Hat Enterprise Linux 9.4 (64bit版) Ubuntu Server 24.04 (64bit版) |
| シェル実行環境 | PowerShell 5.1(Windows11にプリインストールされています) bash(Linux環境にデフォルトでインストールされています) |
2.2 使い方
2.2.1 事前準備
2.2.1.1 ツールの入手
【Windows版/Linux版共通】本ツールを利用するためにGridDB Cloudからツールをダウンロードします。ダウンロードするには、運用管理GUIのSupportページに遷移し、File Downloadをクリックします。ダウンロードしたファイル内にある、「griddbCloudDataImport.zip」が本ツールです。

「griddbCloudDataImport.zip」を解凍すると、以下のファイルが含まれます。
| ファイル名 | 説明 |
|---|---|
| griddbCloudDataImport.bat | Windows版のデータ登録ツールです。 |
| griddbCloudDataImport.ps1 | Windows版のデータ登録ツールです。griddbCloudDataImport.batとセットで利用します。griddbCloudDataImport.batと同じ場所に配置する必要があります。 |
| griddbCloudDataImport.sh | Linux版のデータ登録ツールです。 |
【Linux版のみ】
本ツールを動かすために必要なツールを入手します。
- jqコマンド
事前にdnfやyumで導入が必要です。(dnf install jq または yum install jq)
2.2.1.2 ツールの配置
入手したツールを任意のフォルダに保存し、解凍します。
2.2.1.3 パラメータの設定
下記の解凍したファイルをテキストエディタで開きます。
- Windows版:griddbCloudDataImport.bat
- Linux版:griddbCloudDataImport.sh
開いたファイル内の
- Windows版:29行目~40行目のParameters内のパラメータ一覧
- Linux版:31行目~44行目のConstants内のパラメータ一覧
に記載されている以下の各パラメータの値を設定します。 ◎は必須の設定、○は任意の設定です。
| パラメータ | 必須◎/任意○ | デフォルト値 | 説明 |
|---|---|---|---|
| WEBAPI_URL | ◎ | https://xxx-cloud.griddb.com/ XXXXXX/griddb/v2/ gs_clusterXXXX/dbs/XXXX/ |
本ツールが接続するWebAPIのURLを設定します。URLの情報はGridDB Cloudを申し込んだ際にシステムから返信されるメール内に記載されています。 |
| GRIDDB_USER | ◎ | user | 本ツールが接続する際に使用するGridDBのユーザ名を設定します。 |
| GRIDDB_PASS | ◎ | password | 本ツールが接続する際に使用するGridDBのユーザのパスワードを設定します。 |
| PROXY_SERVER | ○ | - | 本ツールをGridDB Cloudと接続させる際にProxyサーバを利用する場合に設定します。利用しない場合は空欄としてください。 |
| SKIP_HEADER_ROWS | ◎ | 0 | 入力ファイルにCSVファイルを指定した際にスキップする行数を設定します。0以上の整数を設定してください。 |
| SPLIT_ROWS | ◎ | 10000 | 入力ファイルにCSVファイルを指定した際にリクエストを分割する行数を設定します。入力するCSVファイルの行数が大き過ぎる場合にこちらのパラメータで調整します。1以上の整数を設定してください。 |
| TEMP_FILE_PATH | ○ | - | Linux版のみ指定するパラメータです。一時ファイルの出力先を指定します。指定した出力先に登録処理中一時ファイルが出力されます。空欄の場合、データ登録ツールを実行したフォルダに一時ファイルを出力します。 |
2.2.2 ツールの実行
【Windows】
- コマンドプロンプトを起動します。
- ツールの配置で展開したファイルを格納しているディレクトリに移動します。
> cd /{ツールの保存先}
- 以下のコマンドを実行します。
> griddbCloudDataImport.bat [登録先コンテナ名] [入力ファイル名]
コンソールの画面に「Processing ends.」が表示され、コマンドプロンプトに戻れば正常に終了しています。
【Linux】
- ターミナルを起動します。
- ツールの配置で展開したファイルを格納しているディレクトリに移動します。
$ cd /{ツールの保存先}
- 以下のコマンドを実行します。
$ bash griddbCloudDataImport.sh [登録先コンテナ名] [入力ファイル名]
コンソールの画面に「Processing ends.」が表示され、ターミナルに戻れば正常に終了しています。
2.2.3 登録したデータの確認
2.2.3.1 クエリの実行
本機能はSQL/TQL双方のモードで利用可能です。
ステップ1: データベースおよびコンテナ(TQLモードのみ)を選択後、[QUERY EDITOR] にクエリを入力します。オートコンプリート(②) を使ってSQL文をクイック挿入するか、手動でSQL文を挿入するかを選択できます。このクエリエディタは行番号(①)を表示します。
ステップ2: 有効になった [Execute] ボタン(①)をクリックし、クエリを実行します。
詳細は『GridDB Cloud 運用管理GUIリファレンス』の (クエリの実行)を参照してください。
2.3 注意事項
- 「SPLIT_ROWS」の値が小さく、登録する入力ファイルの行数が大きい場合、「TEMP_FILE_PATH」で指定したパスに一時ファイルが大量に出力される可能性があるため、ご注意ください。
- 「SPLIT_ROWS」の値が小さく、登録する入力ファイルの行数が大きい場合、ログファイルに大量にログが出力される可能性があるため、ご注意ください。
3 データ登録の流れ
4 登録先コンテナ作成
4.1 運用管理GUIで作成
4.1.1 コンテナの作成
コンテナを新規作成するには、[CREATE CONTAINER] ボタンをクリックします。
[Create Container] ダイアログが表示されるので、入力フィールドにコンテナの詳細を入力します。
- コレクション: 一般データ管理用のコンテナ。コレクションを作成するには、コレクションの作成を参照してください。
- 時系列コンテナ: 時系列データ管理用のコンテナ。時系列データとは一定期間に繰り返し測定を行い得られた観測データを集めたものです。時系列コンテナを作成するには、時系列コンテナの作成を参照してください。
- デフォルトではコンテナタイプはCOLLECTIONに設定されています。
- カラム幅は、ヘッダーにある縦棒記号(|)のドラッグ&ドロップで調整可能です。
4.1.1.1 コレクションの作成
[Create Container] ダイアログにはデフォルトのコレクションタイプ[COLLECTION]が選択されています。
ステップ1:
- COLLECTIONが選択されると、下の画像に示すダイアログが表示されます。ここで [Data Affinity] フィールド (①)にデータアフィニティを提供できます(任意) 。データアフィニティとは、相関性の高いデータを同一ブロック内に配置して、データアクセスをローカライズすることにより、メモリのヒット率を改善する機能です。
- コンテナにカラムを新たに追加するには、[+] ボタン(②)をクリックします。
- カラム名は [Column Name] フィールド(③)に入力することにより指定できます。このカラムのタイプは [Type] のドロップダウンリスト (④) から選択します。下記の表で対応タイプを確認できます。
- カラムのNOT NULL制約は [Not Null] のチェックボックス (⑤)をクリックすることで指定できます。NOT NULL制約のカラム値は空にできません。また、ロウ識別子を定義するには [Row Key] チェックボックス (⑥)をクリックします。
- [Container name conditions] タブ (⑦) をクリックして、コンテナ名の入力条件の表示・非表示を切り替えることができます。また、[Data affinity conditions] タブ (⑦) をクリックして、データアフィニティの条件の表示・非表示を切り替えることができます。
[注意]: データアフィニティの詳細については 『GridDB 機能リファレンス』の「データアフィニティ」の項(GridDB_FeaturesReference.html)を参照してください。
対応タイプ:
| 説明 | タイプ | |
|---|---|---|
| 基本(BASIC)データタイプ | Booleanタイプ | BOOL |
| 文字列 | STRING | |
| 整数タイプ | BYTE, SHORT, INTEGER, LONG | |
| 浮動小数点タイプ | FLOAT, DOUBLE | |
| 時間タイプ | TIMESTAMP | |
| 空間タイプ | GEOMETRY | |
| オブジェクトデータタイプ | BLOB | |
| 混合(HYBRID)タイプ | 配列タイプ | BOOL_ARRAY, STRING_ARRAY, BYTE_ARRAY, SHORT_ARRAY, INTEGER_ARRAY, LONG_ARRAY, FLOAT_ARRAY, DOUBLE_ARRAY, TIMESTAMP_ARRAY |
ステップ2:
- 不要なカラムを削除するには、[DELETE] ボタン(②)をクリックします。
- すべての情報を入力した後、[CREATE] ボタン(①) をクリックし、コンテナを作成します。
- コンテナを作成しない場合、[CANCEL] ボタンをクリックし、ダイアログを閉じ、コンテナ一覧画面に戻ります。
4.1.1.2 時系列コンテナの作成
ステップ1: [Create Container] ダイアログで [TIMESERIES] を選択します。
ステップ2:
- TIMESERIESが選択されると、下の画像に示すダイアログが表示されます。ここで [Data Affinity] フィールド (①)にデータアフィニティを提供できます(任意) 。データアフィニティとは、相関性の高いデータを同一ブロック内に配置して、データアクセスをローカライズすることにより、メモリのヒット率を改善する機能です。
- [Data affinity conditions] タブ(②)をクリックして、データアフィニティの入力条件の表示・非表示を切り替えることができます。
- コンテナにカラムを新たに追加するには、[+] ボタン(①)をクリックします。
- デフォルトでは、時系列コンテナの先頭行はTIMESTAMPタイプになります。
- カラム名は [Column Name] フィールド(②)に入力することにより指定できます。このカラムのタイプは [Type] のドロップダウンリスト (③) から選択します。
- カラムのNOT NULL制約 は [Not Null] のチェックボックス (④)をクリックすることで指定できます。このカラムは空にできません。[Row Key] チェックボックス (⑤)は、最初のカラム(TIMESTAMPタイプ)にのみ設けられています。他のカラムはロウキーとして設定できません。
ステップ3:
- 不要なカラムを削除するには、 [DELETE] ボタン(①)をクリックします。
- すべての情報を入力した後、[CREATE] ボタン(②)をクリックし、コンテナを作成します。
- コンテナを作成しない場合、[CANCEL] ボタンをクリックし、ダイアログを閉じ、コンテナ一覧画面に戻ります。
詳細は『GridDB Cloud 運用管理GUIリファレンス』の (コンテナの作成)を参照してください。
4.2 GridDB WebAPIで作成
【例】コンテナ作成(bashのスクリプト)
#!/bin/bash
$ WEBAPI_URL="https://xxx-cloud.griddb.com/XXXXXX/griddb/v2/gs_clusterXXXX/dbs/XXXX/"
$ GRIDDB_USER="user"
$ GRIDDB_PASS="password"
$ basic_auth=$(echo "$(echo -n ${GRIDDB_USER}:${GRIDDB_PASS} | base64)")
$ curl -X POST -H "Content-Type: application/json" -H "Authorization:Basic ${basic_auth}" "${WEBAPI_URL}containers" -d"{\"container_name\":\"containerName\",\"container_type\":\"TIME_SERIES\",\"rowkey\":true,\"columns\":[{\"name\":\"a\",\"type\":\"TIMESTAMP\",\"timePrecision\":\"MILLISECOND\",\"index\":[]},{\"name\":\"b\",\"type\":\"LONG\",\"index\":[]},{\"name\":\"c\",\"type\":\"FLOAT\",\"index\":[]}]}"
【例】コンテナ作成(PowerShellのスクリプト)
$WEBAPI_URL="https://xxx-cloud.griddb.com/XXXXXX/griddb/v2/gs_clusterXXXX/dbs/XXXX/"
$GRIDDB_USER="user"
$GRIDDB_PASS="password"
$basic_auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("${GRIDDB_USER}:${GRIDDB_PASS}"))
$griddb_webapi_url = $WEBAPI_URL.TrimEnd('/')
$url = "${griddb_webapi_url}/containers"
$headers = @{
"Content-Type" = "application/json; charset=utf-8"
"Authorization" = "Basic $basic_auth"
"Accept" = "*/*"
}
Invoke-RestMethod -Uri $url -Method Post -Body '{"container_name":"containerName","container_type":"TIME_SERIES","rowkey":true,"columns":[{"name":"a","type":"TIMESTAMP","timePrecision":"MILLISECOND","index":[]},{"name":"b","type":"LONG","index":[]},{"name":"c","type":"FLOAT","index":[]}]}' -Headers $headers
詳細は『GridDB Web APIリファレンス』のコンテナ作成を参照してください。
5 入力ファイル作成
登録するデータのフォーマットについては登録可能なデータ型を参照してください。
[注意]: 入力ファイルはUTF-8形式で作成してください。
5.1 JSONファイル作成
1コンテナ、1ファイルで1入力フォーマット(1要素)のみ登録可能です。
登録できるJSONファイルの例は以下になります。
【例】指定したJSONファイルの中身をそのまま登録する場合
[
["2016-01-16T10:25:00.253Z", 100.5, "normal"],
["2016-01-16T10:35:00.691Z", 173.9, "normal"],
["2016-01-16T10:45:00.032Z", 173.9, null]
]
【例】指定したJSONファイルのキーが"results"の値を登録する場合
{
...
"results":[
["2016-01-16T10:25:00.253Z", 100.5, "normal"],
["2016-01-16T10:35:00.691Z", 173.9, "normal"],
["2016-01-16T10:45:00.032Z", 173.9, null]
]
...
}
【例】指定したJSONファイルのキーが"data"の値を登録する場合
{
...
"data":[
["2016-01-16T10:25:00.253Z", 100.5, "normal"],
["2016-01-16T10:35:00.691Z", 173.9, "normal"],
["2016-01-16T10:45:00.032Z", 173.9, null]
]
...
}
【例】指定したJSONファイルのキーが"rows"の値を登録する場合
{
...
"rows":[
["2016-01-16T10:25:00.253Z", 100.5, "normal"],
["2016-01-16T10:35:00.691Z", 173.9, "normal"],
["2016-01-16T10:45:00.032Z", 173.9, null]
]
...
}
【例】指定したJSONファイルのキーが"row"の値を登録する場合
{
...
"row":[
["2016-01-16T10:25:00.253Z", 100.5, "normal"]
]
...
}
登録できないJSONファイルの例は以下になります。
【例】指定したJSONファイル内で登録対象の複数のキーを指定した場合
{
...
"results":[
["2016-01-16T10:25:00.253Z", 100.5, "normal"],
["2016-01-16T10:35:00.691Z", 173.9, "normal"]
],
"data":[
["2016-01-16T10:25:00.253Z", 100.5, "normal"],
["2016-01-16T10:35:00.691Z", 173.9, "normal"]
],
"rows":[
["2016-01-16T10:25:00.253Z", 100.5, "normal"],
["2016-01-16T10:35:00.691Z", 173.9, "normal"]
]
...
}
【例】指定したJSONファイル内で登録対象のキーを複数回指定した場合
{
...
"results":[
["2016-01-16T10:25:00.253Z", 100.5, "normal"],
["2016-01-16T10:35:00.691Z", 173.9, "normal"]
],
"results":[
["2016-01-16T10:25:00.253Z", 100.5, "normal"],
["2016-01-16T10:35:00.691Z", 173.9, "normal"]
],
"results":[
["2016-01-16T10:25:00.253Z", 100.5, "normal"],
["2016-01-16T10:35:00.691Z", 173.9, "normal"]
]
...
}
【例】指定したJSONファイル内で登録対象のキーの値の数や型が統一されていない場合
{
...
"results":[
["2016-01-16T10:25:00.253Z", 100.5, "normal"],
["2016-01-16T10:35:00.691Z", 173.9, "normal", "plusA"],
["2016-01-16T10:45:00.032Z", 173.9, null]
]
...
}
5.2 CSVファイル作成
データ登録ツールのパラメータの設定のパラメータ「SKIP_HEADER_ROWS」とCSVファイルのデータで入力を調整します。
以下のように値だけのCSVファイルの場合は
"値","値","値",..(カラム定義個数)
"値","値","値",..(カラム定義個数)
:
SKIP_HEADER_ROWS=0
を指定して、全行を値として登録します。
以下のように値とカラムのヘッダ情報を含んだCSVファイルの場合は
"カラム名","カラム名","カラム名",..(カラム定義個数)
"カラム型","カラム型","カラム型",..(カラム定義個数)
"値","値","値",..(カラム定義個数)
"値","値","値",..(カラム定義個数)
:
SKIP_HEADER_ROWS=2
を指定して、ヘッダ行をスキップして3行目以降の値のみを登録します。
5.3 GridDB Enterprise Edition 登録データからのファイル作成
GridDB Enterprise Edition(以降、これらの製品を指す場合GridDBと記載します)に登録されているデータからファイルを作成する方法を以下で説明します。
5.3.1 gs_exportを用いた方法
$ gs_export --container c001 -u admin/admin
出力されるロウファイル(CSV)
"#(日時情報)(空白)GridDBリリースバージョン"
"#User:(ユーザ名)"
"%","メタデータファイルのファイル名"
"$","データベース名.コンテナ名"
"値","値","値",..(カラム定義個数)
"値","値","値",..(カラム定義個数)
:
【例】gs_exportの出力ファイル
"#2025-01-01T00:00:00.000+0000 GridDB V5.X.00"
"#User:admin"
"%","public.containerName_properties.json"
"$","public.containerName"
"10000","AAAAAAAA01","AAAAAAAA01","1.0","2022-10-01T15:00:00.000Z"
"10001","BBBBBBBB02","BBBBBBBB02","1.1","2022-10-01T15:00:01.000Z"
"10002","CCCCCCCC03","CCCCCCCC03","1.2","2022-10-01T15:00:02.000Z"
実データは5行目以降のため、最初の4行をヘッダ行としてスキップするので、
SKIP_HEADER_ROWS=4
と指定します。
詳細はエクスポートの機能を参照してください。
5.3.2 gs_shを用いた方法
$ gs_sh
> select * from コンテナ名; ← SQLやTQLでコンテナのデータを取得
> getcsv CSVファイル名 [取得件数]
"カラム名","カラム名","カラム名",..(カラム定義個数)
"$",
"値","値","値",..(カラム定義個数)
"値","値","値",..(カラム定義個数)
:
【例】gs_shの出力ファイル
"#id","value01","value02","value03double","value04time"
"$",
"10000","AAAAAAAA01","AAAAAAAA01","1.0","2022-10-01T15:00:00.000Z"
"10001","BBBBBBBB02","BBBBBBBB02","1.1","2022-10-01T15:00:01.000Z"
"10002","CCCCCCCC03","CCCCCCCC03","1.2","2022-10-01T15:00:02.000Z"
実データは3行目以降のため、最初の2行をヘッダ行としてスキップするので、
SKIP_HEADER_ROWS=2
と指定します。
詳細は検索結果の取得を参照してください。
5.3.3 GridDB WebAPIを用いた方法
【例】単一コンテナからのロウ取得(bashのスクリプト)
#!/bin/bash
WEBAPI_URL="https://xxx-cloud.griddb.com/XXXXXX/griddb/v2/gs_clusterXXXX/dbs/XXXX/"
GRIDDB_USER="user"
GRIDDB_PASS="password"
basic_auth=$(echo "$(echo -n ${GRIDDB_USER}:${GRIDDB_PASS} | base64)")
curl -X POST -H "Content-Type: application/json" -H "Authorization:Basic ${basic_auth}" "${WEBAPI_URL}containers/containerName/rows" -d"{\"limit\":1000}" > output.json
【例】単一コンテナからのロウ取得(PowerShellのスクリプト)
$WEBAPI_URL="https://xxx-cloud.griddb.com/XXXXXX/griddb/v2/gs_clusterXXXX/dbs/XXXX/"
$GRIDDB_USER="user"
$GRIDDB_PASS="password"
$basic_auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("${GRIDDB_USER}:${GRIDDB_PASS}"))
$griddb_webapi_url = $WEBAPI_URL.TrimEnd('/')
$url = "${griddb_webapi_url}/containers/UContainerName1/rows"
$headers = @{
"Content-Type" = "application/json; charset=utf-8"
"Authorization" = "Basic $basic_auth"
"Accept" = "*/*"
}
$response = Invoke-RestMethod -Uri $url -Method Post -Body '{"limit":1000}' -Headers $headers
$response | ConvertTo-Json | Out-File -FilePath "output.json" -Encoding UTF8
詳細は単一コンテナからのロウ取得を参照してください。
【例】SQL DML SELECT文の実行(bashのスクリプト)
#!/bin/bash
WEBAPI_URL="https://xxx-cloud.griddb.com/XXXXXX/griddb/v2/gs_clusterXXXX/dbs/XXXX/"
GRIDDB_USER="user"
GRIDDB_PASS="password"
basic_auth=$(echo "$(echo -n ${GRIDDB_USER}:${GRIDDB_PASS} | base64)")
curl -X POST -H "Content-Type: application/json" -H "Authorization:Basic ${basic_auth}" "${WEBAPI_URL}sql/dml/query" -d"[{\"stmt\":\"select * from containerName\"}]" > output.json
【例】SQL DML SELECT文の実行(PowerShellのスクリプト)
$WEBAPI_URL="https://xxx-cloud.griddb.com/XXXXXX/griddb/v2/gs_clusterXXXX/dbs/XXXX/"
$GRIDDB_USER="user"
$GRIDDB_PASS="password"
$basic_auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("${GRIDDB_USER}:${GRIDDB_PASS}"))
$griddb_webapi_url = $WEBAPI_URL.TrimEnd('/')
$url = "${griddb_webapi_url}/sql/dml/query"
$headers = @{
"Content-Type" = "application/json; charset=utf-8"
"Authorization" = "Basic $basic_auth"
"Accept" = "*/*"
}
$response = Invoke-RestMethod -Uri $url -Method Post -Body '[{"stmt":"select * from UContainerName1"}]' -Headers $headers
$response | ConvertTo-Json | Out-File -FilePath "output.json" -Encoding UTF8
詳細はSQL DML SELECT文実行を参照してください。
取得したファイルをデータ登録ツールの入力ファイルとして利用します。
5.4 GridDB Cloud データ取り出しツールからのファイル取得
データ登録ツールと同様にツールを入手して、パラメータを設定します。またWindows環境の場合はcurlコマンドとjqコマンドをインストールして環境を構築します。
詳細はデータ取り出しツールガイドを参照してください。
以下の例のようにデータ取り出しツールを実行して結果ファイルを取得します。
【例】データ取り出しツールを用いた結果ファイル取得
> griddbCloudDataExport.bat
または
$ bash griddbCloudDataExport.sh
取得した結果ファイル({実行日時}_sql_result_1.csv)をデータ登録ツールの入力ファイルとして利用します。
"#id","value01","value02","value03double","value04time"
"10000","AAAAAAAA01","AAAAAAAA01","1.0","2022-10-01T15:00:00.000Z"
実データは2行目以降のため、最初の1行をヘッダ行としてスキップするので、
SKIP_HEADER_ROWS=1
と指定します。
6 単一コンテナへのデータ登録
Windowsの場合
> griddbCloudDataImport.bat [登録先コンテナ名] [入力ファイル名]
Linuxの場合
$ bash griddbCloudDataImport.sh [登録先コンテナ名] [入力ファイル名]
7 複数コンテナへのデータ登録
【例】GridDB WebAPIを用いた登録先の複数コンテナ作成(bashのスクリプト)
#!/bin/bash
WEBAPI_URL="https://xxx-cloud.griddb.com/XXXXXX/griddb/v2/gs_clusterXXXX/dbs/XXXX/"
GRIDDB_USER="user"
GRIDDB_PASS="password"
basic_auth=$(echo "$(echo -n ${GRIDDB_USER}:${GRIDDB_PASS} | base64)")
for i in `seq 10`
do
curl -X POST -H "Content-Type: application/json" -H "Authorization:Basic ${basic_auth}" "${WEBAPI_URL}containers" -d"{\"container_name\":\"containerName$i\",\"container_type\":\"TIME_SERIES\",\"rowkey\":true,\"columns\":[{\"name\":\"a\",\"type\":\"TIMESTAMP\",\"timePrecision\":\"MILLISECOND\",\"index\":[]},{\"name\":\"b\",\"type\":\"LONG\",\"index\":[]},{\"name\":\"c\",\"type\":\"FLOAT\",\"index\":[]}]}"
done
【例】GridDB WebAPIを用いた登録先の複数コンテナ作成(PowerShellのスクリプト)
$WEBAPI_URL="https://xxx-cloud.griddb.com/XXXXXX/griddb/v2/gs_clusterXXXX/dbs/XXXX/"
$GRIDDB_USER="user"
$GRIDDB_PASS="password"
$basic_auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("${GRIDDB_USER}:${GRIDDB_PASS}"))
$griddb_webapi_url = $WEBAPI_URL.TrimEnd('/')
$url = "${griddb_webapi_url}/containers"
$headers = @{
"Content-Type" = "application/json; charset=utf-8"
"Authorization" = "Basic $basic_auth"
"Accept" = "*/*"
}
for ($i = 1; $i -le 10; $i++) {
Invoke-RestMethod -Uri $url -Method Post -Body "{`"container_name`":`"containerName$i`",`"container_type`":`"TIME_SERIES`",`"rowkey`":true,`"columns`":[{`"name`":`"a`",`"type`":`"TIMESTAMP`",`"timePrecision`":`"MILLISECOND`",`"index`":[]},{`"name`":`"b`",`"type`":`"LONG`",`"index`":[]},{`"name`":`"c`",`"type`":`"FLOAT`",`"index`":[]}]}" -Headers $headers
}
【例】データ登録ツールを用いた複数コンテナへのデータ登録(bashのスクリプト)
#!/bin/bash
for i in `seq 10`
do
bash griddbCloudDataImport.sh "containerName$i" inputfile$i.csv
done
【例】データ登録ツールを用いた複数コンテナへのデータ登録(PowerShellのスクリプト)
$maxCount = 10
$batFilePath = Join-Path (Get-Location).Path "griddbCloudDataImport.bat"
for ($i = 1; $i -le $maxCount; $i++) {
$arg = "containerName$i"
$file = "inputfile$i.csv"
Start-Process -FilePath $batFilePath -ArgumentList @($arg, $file) -Wait
}
8 登録可能なデータ型
データ登録ツールで登録可能なデータ型について説明します。
| 分類 | データ型 | JSONデータ型 | 例 | |
|---|---|---|---|---|
| 基本型 | ブール型 | BOOL | 真偽値 (true または false) または 文字列 ("true" または "false") |
true |
| 文字列型 | STRING | 文字列 | "GridDB" | |
| 整数型 | BYTE/SHORT/INTEGER/LONG | 数値 または 文字列 | 512 | |
| 浮動小数点数型 | FLOAT/DOUBLE | 数値 または 文字列 | 593.5 | |
| 時刻型 | TIMESTAMP | 文字列 ・UTC ・フォーマット YYYY-MM-DDThh:mm:ss.SSSZ |
"2016-01-16T10:25:00.253Z" | |
| 空間型 | GEOMETRY | 文字列 (WKT表現) | "POLYGON((0 0,10 0,10 10,0 10,0 0))" | |
| BLOB型 | BLOB | 文字列 | "UEsDBAoAAAgAADS4PFIAAAAAAAAAAAA..." | |
| 配列型 | ブール型 | BOOL | 真偽値の配列 または 文字列の配列 | [true, false, true] |
| 文字列型 | STRING | 文字列の配列 | ["A","B","C"] | |
| 整数型 | BYTE/SHORT/INTEGER/LONG | 数値の配列 または 文字列の配列 | [100, 39, 535] | |
| 浮動小数点数型 | FLOAT/DOUBLE | 数値の配列 または 文字列の配列 | [3.52, 6.94, 1.83] | |
| 時刻型 | TIMESTAMP | 文字列の配列 (書式は基本型の時刻型と同じ) |
["2016-01-16T10:25:00.253Z", "2016-01-17T01:42:53.038Z"] |
上記以外のデータ型は登録できません。
9 エラーメッセージ一覧
主なエラーメッセージと対策について説明します。
| レスポンスコード | エラーメッセージ | 対策 |
|---|---|---|
| - | Usage: griddbCloudDataImport.sh [登録先コンテナ名] [入力ファイル名] | 引数に[登録先コンテナ名]と[入力ファイル名]を指定しているかご確認ください。 |
| - | Please specify a non-negative integer for [SKIP_HEADER_ROWS] | パラメータの「SKIP_HEADER_ROWS」が正しいかご確認ください。 |
| - | Please specify a positive integer greater than 0 for [SPLIT_ROWS] | パラメータの「SPLIT_ROWS」が正しいかご確認ください。 |
| - | [入力ファイル名] does not exist. | 引数の[入力ファイル名]のファイルが存在するかご確認ください。 |
| - | [入力ファイル名] has an incorrect JSON format. | 引数の[入力ファイル名]のJSONファイルのフォーマットが正しいかご確認ください。 |
| - | WebAPI call failed. | パラメータの「WEBAPI_URL」が正しいかご確認ください。 |
| 400 | Row data is invalid | 入力ファイルとパラメータの「SKIP_HEADER_ROWS」が正しいかご確認ください。 |
| 400 | Rows data is empty | 入力ファイルとパラメータの「SKIP_HEADER_ROWS」が正しいかご確認ください。 |
| 401 | TXN_AUTH_FAILED | パラメータの「WEBAPI_URL」、「GRIDDB_USER」、「GRIDDB_PASS」が正しいかご確認ください。 |
| 404 | Container not existed | 引数の[登録先コンテナ名]のコンテナが存在するかご確認ください。 |
その他、エラーメッセージが表示された場合は、入力ファイルと「SKIP_HEADER_ROWS」、「SPLIT_ROWS」などのパラメータの設定を調整してください。




