すべてのクイックスタート
リアルタイム分析データウェアハウジングオブザーバビリティAI/MLCloud
次のクイックスタートも完了しておく必要があります。
このクイックスタートでは、公式の ClickHouse CLI クライアントである clickhouse-client を使用して、ローカルの CSV ファイルから ClickHouse Cloud サービス にデータを挿入します。
clickhouse-client をインストールし、サンプルデータセットを準備して、Cloud サービス に接続し、テーブルを作成して、ローカルマシンからデータを挿入します。
最後には、clickhouse-client を使ってローカルファイルを ClickHouse Cloud に読み込む方法を理解できるようになります。このワークフローは、CSV、Parquet、JSON、その他多くのフォーマットに対応しています。
clickhouse-client をインストールする
clickhouse-client は、ClickHouse に接続するための公式 CLI です。ClickHouse バイナリに含まれています。ユニバーサルインストーラーを使用してインストールします。curl https://clickhouse.com/ | sh
これにより、最新の clickhouse バイナリが現在のディレクトリにダウンロードされます。インストールを確認します。./clickhouse client --version
ClickHouse のバージョン番号が表示されれば、clickhouse-client を使用する準備が整っていることを確認できます。サンプルのCSVファイルを準備する
このクイックスタートだけで完了できるよう、小さなサンプルのCSVファイルを作成します。ターミナルで次を実行してください。cat <<'EOF' > sample_data.csv
timestamp,event_type,user_id,duration_ms,status
2024-01-15 10:30:00,page_view,1001,120,success
2024-01-15 10:31:15,click,1002,45,success
2024-01-15 10:32:00,page_view,1003,200,success
2024-01-15 10:33:30,purchase,1001,1500,success
2024-01-15 10:34:00,click,1004,60,error
2024-01-15 10:35:45,page_view,1002,95,success
2024-01-15 10:36:10,purchase,1005,2200,success
2024-01-15 10:37:00,click,1003,30,success
2024-01-15 10:38:20,page_view,1004,150,error
2024-01-15 10:39:00,purchase,1002,1800,success
EOF
Cloud サービスに接続する
以下のコマンドは、Cloud 接続の詳細を取得する quickstart で説明されているとおり、CLICKHOUSE_HOST、CLICKHOUSE_USER、CLICKHOUSE_PASSWORD を環境変数として export 済みであることを前提としています。まだ設定していない場合は、これらを実際の値に直接置き換えることもできます。Cloud サービスに対して簡単なクエリを実行し、接続を確認します。./clickhouse client \
--host $CLICKHOUSE_HOST \
--port 9440 \
--user $CLICKHOUSE_USER \
--password $CLICKHOUSE_PASSWORD \
--secure \
-q "SELECT 1"
接続に成功すると、ターミナルに 1 と表示されます。接続エラーが発生した場合は、Cloud Console でサービスが稼働中であることと、ホスト名およびパスワードが正しいことを確認してください。ポート 9440 は、ClickHouse Cloud のセキュアなネイティブプロトコル用ポートです。--secure フラグを指定すると、TLS 暗号化が有効になります。これらはすべての Cloud 接続で必須です。
ターゲットテーブルを作成してデータを挿入する
まず、データの受け取り先となるテーブルを Cloud サービス上に作成します。./clickhouse client \
--host $CLICKHOUSE_HOST \
--port 9440 \
--user $CLICKHOUSE_USER \
--password $CLICKHOUSE_PASSWORD \
--secure \
-q "
CREATE TABLE IF NOT EXISTS events (
timestamp DateTime,
event_type LowCardinality(String),
user_id UInt32,
duration_ms UInt32,
status LowCardinality(String)
)
ENGINE = MergeTree
ORDER BY (event_type, timestamp)
"
次に、ローカルのCSVファイルからデータを挿入します。これは重要な手順です。clickhouse-client は標準入力からファイルを読み取り、リモートサービスにストリーミングします。./clickhouse client \
--host $CLICKHOUSE_HOST \
--port 9440 \
--user $CLICKHOUSE_USER \
--password $CLICKHOUSE_PASSWORD \
--secure \
-q "INSERT INTO events FORMAT CSVWithNames" < sample_data.csv
clickhouse-client は、CSV ファイルの内容を Cloud サービスに直接送信します。CSVWithNames フォーマットは、先頭行にカラムヘッダーが含まれていることを ClickHouse に伝えます。データが挿入されたことを確認する
行が取り込まれていることを確認するため、Cloud サービスにクエリを実行します:./clickhouse client \
--host $CLICKHOUSE_HOST \
--port 9440 \
--user $CLICKHOUSE_USER \
--password $CLICKHOUSE_PASSWORD \
--secure \
-q "SELECT count() FROM events"
10 と表示されるはずです。これはサンプル CSV の行数です。データをプレビューします。./clickhouse client \
--host $CLICKHOUSE_HOST \
--port 9440 \
--user $CLICKHOUSE_USER \
--password $CLICKHOUSE_PASSWORD \
--secure \
-q "SELECT * FROM events ORDER BY timestamp LIMIT 5"
このワークフローは、Parquet、TSV、JSON、Avro、ORC、そのほか多くの対応フォーマットでも同様に使えます。FORMAT 句を変更し、適切なファイルをパイプで渡すだけです。
次のステップ
このクイックスタートでは、clickhouse-client をインストールし、ClickHouse Cloud サービスに接続して、ローカルのCSVファイルからCloudへデータをストリーミングしました。この方法は、Parquet、JSON、そのほか多数のフォーマットでも同様に使用できます。
次に、以下のクイックスタートをご覧ください。
または、リファレンスドキュメントでさらに詳しく確認できます。