ローカルファイル
Dorisはローカルソースからデータを読み込むための複数の方法を提供しています:
1. Stream Load
HTTPプロトコルを介してローカルファイルやデータストリームをDorisに読み込みます。CSV、JSON、Parquet、ORCフォーマットをサポートしています。詳細については、Stream Loadドキュメントを参照してください。
2. Streamloaderツール
StreamloaderツールはStream Loadに基づいて、Dorisデータベースにデータを読み込むための専用クライアントツールです。複数ファイルや並行読み込み機能を提供し、大量のデータの読み込みに必要な時間を短縮できます。詳細なドキュメントについては、Streamloaderを参照してください。
3. MySQL Load
Dorisは MySQL プロトコルと互換性があり、標準のLOAD DATA構文を使用してローカルファイルを読み込むことをサポートしており、CSVファイルの読み込みに適しています。
Stream Loadを使用したデータの読み込み
ステップ1:データの準備
以下の内容でstreamload_example.csvという名前のCSVファイルを作成します:
1,Emily,25
2,Benjamin,35
3,Olivia,28
4,Alexander,60
5,Ava,17
6,William,69
7,Sophia,32
8,James,64
9,Emma,37
10,Liam,64
ステップ 2: Tableの作成
以下の構文を使用してDorisでTableを作成します:
CREATE TABLE testdb.test_streamload(
user_id BIGINT NOT NULL COMMENT "User ID",
name VARCHAR(20) COMMENT "User Name",
age INT COMMENT "User Age"
)
DUPLICATE KEY(user_id)
DISTRIBUTED BY HASH(user_id) BUCKETS 10;
ステップ 3: データの読み込み
curlを使用してStream Loadジョブを送信します:
curl --location-trusted -u <doris_user>:<doris_password> \
-H "column_separator:," \
-H "columns:user_id,name,age" \
-T streamload_example.csv \
-XPUT http://<fe_ip>:<fe_http_port>/api/testdb/test_streamload/_stream_load
読み込み結果の例:
{
"TxnId": 3,
"Status": "Success",
"NumberTotalRows": 10,
"NumberLoadedRows": 10
}
ステップ 4: ロードされたデータの確認
mysql> SELECT COUNT(*) FROM testdb.test_streamload;
+----------+
| count(*) |
+----------+
| 10 |
+----------+
Streamloader Toolを使用したデータのロード
ステップ1: データの準備
上記と同じ内容でstreamloader_example.csvという名前のCSVファイルを作成します。
ステップ2: Tableの作成
上記と同じ構文を使用してDorisでTableを作成します。
ステップ3: データのロード
Streamloader toolを使用してデータをロードします:
doris-streamloader --source_file="streamloader_example.csv" --url="http://localhost:8330" --header="column_separator:," --db="testdb" --table="test_streamload"
読み込み結果の例:
Load Result: {
"Status": "Success",
"TotalRows": 10,
"LoadedRows": 10
}
ステップ 4: ロードされたデータの確認
mysql> SELECT COUNT(*) FROM testdb.test_streamload;
+----------+
| count(*) |
+----------+
| 10 |
+----------+
MySQL Load を使用したデータの読み込み
ステップ1: データの準備
以下のサンプルデータを含む client_local.csv という名前のファイルを作成します:
1,10
2,20
3,30
4,40
5,50
6,60
ステップ2: MySQL Clientに接続する
mysql --local-infile -h <fe_ip> -P <fe_query_port> -u root -D testdb
ステップ 3: データの読み込み
MySQL Load コマンドを実行します:
LOAD DATA LOCAL
INFILE 'client_local.csv'
INTO TABLE testdb.t1
COLUMNS TERMINATED BY ','
LINES TERMINATED BY '\n';
ステップ 4: 読み込まれたデータの確認
読み込みが成功した場合、結果は以下のように表示されます:
Query OK, 6 row affected (0.17 sec)
Records: 6 Deleted: 0 Skipped: 0 Warnings: 0