ローカルファイルシステムからデータをロードする
CelerData を使用すると、Stream Load を利用してローカルファイルシステムからデータをロードできます。
Stream Load は HTTPS ベースの同期ロード方法です。ロードジョブを送信すると、CelerData はジョブを同期的に実行し、ジョブが完了した後にその結果を返します。ジョブの結果に基づいて、ジョブが成功したかどうかを判断できます。
Stream Load は、ローカルファイルシステムから 10 GB 未満のデータをロードするのに適しています。
対応フォーマット
対応するファイルフォーマットは CSV と JSON です。
CSV データについては、以下の点に注意してください:
- テキスト区切り文字として、カンマ (,) やタブ、パイプ (|) など の UTF-8 文字列を使用できます。長さは 50 バイトを超えないようにしてください。
- Null 値は
\N
を使用して示します。例えば、データファイルが 3 列で構成されており、そのデータファイルのレコードが第 1 列と第 3 列にデータを持ち、第 2 列にデータがない場合、この状況では第 2 列に\N
を使用して Null 値を示す必要があります。つまり、レコードはa,\N,b
としてコンパイルする必要があり、a,,b
ではいけません。a,,b
はレコードの第 2 列が空の文字列を持っていることを示します。
制限事項
Stream Load は、JSON フォーマットの列を含む CSV ファイルのデータロードをサポートしていません。
始める前に
ソースデータの準備
ローカルファイルシステム内のソースデータが準備されていることを確認し、ソースデータが保存されているパスを取得してください。
このトピックでは、2 つのサンプルデータファイルを例として使用します:
-
example1.csv
という名前の CSV ファイル。このファイルは、ユーザー ID、ユーザー名、ユーザースコアを順に表す 3 列で構成されています。1,Lily,23
2,Rose,23
3,Alice,24
4,Julia,25 -
example2.json
という名前の JSON ファイル。このファイルは、都市 ID と都市名を順に表す 2 列で構成されています。{"name": "Beijing", "code": 2}
権限の確認
CelerData クラスター内のテーブルにデータをロードするには、そのテーブルに対する INSERT 権限を持つユーザーである必要があります。INSERT 権限がない場合は、GRANT に従って、CelerData クラスターに接続するために使用するユーザーに INSERT 権限を付与してください。
CelerData クラスターのアカウント admin には、そのクラスター内で有効なすべての権限があります。このアカウントを使用してクラスターに接続する場合、GRANT 操作を実行する必要はありません。
CelerData に接続する
ロードジョブを開始する前に、以下を行う必要があります:
-
CelerData クラスターに接続します。
-
使用する catalog とデータベースを指定します。
このトピックでは、
mydatabase
という名前のデータベースを選択したと仮定します。このデータベースは、CREATE DATABASE ステートメントを使用して作成できます:CREATE DATABASE mydatabase;
-
目的のテーブルが準備されていることを確認します。
指定したデータベースにテーブルがない場合は、CREATE TABLE ステートメントを使用してテーブルを作成できます。
このトピックでは、以下のように 2 つのテーブルを作成します:
-
table1
という名前の主キーテーブル。このテーブルは、id
、name
、score
の 3 列で構成されており、id
が主キーです。CREATE TABLE `table1`
(
`id` int(11) NOT NULL COMMENT "user ID",
`name` varchar(65533) NULL COMMENT "user name",
`score` int(11) NOT NULL COMMENT "user score"
)
ENGINE=OLAP
PRIMARY KEY(`id`)
DISTRIBUTED BY HASH(`id`); -
table2
という名前の主キーテーブル。このテーブルは、id
とcity
の 2 列で構成されており、id
が主キーです。CREATE TABLE `table2`
(
`id` int(11) NOT NULL COMMENT "city ID",
`city` varchar(65533) NULL COMMENT "city name"
)
ENGINE=OLAP
PRIMARY KEY(`id`)
DISTRIBUTED BY HASH(`id`);
-