メインコンテンツまでスキップ
メインコンテンツまでスキップ

ClickHouse Cloud クイックスタート

ClickHouseをすぐに立ち上げる最も簡単で迅速な方法は、ClickHouse Cloudに新しいサービスを作成することです。このクイックスタートガイドでは、3つの簡単なステップで設定を行います。

ClickHouse サービスを作成する

ClickHouse Cloudに無料のClickHouseサービスを作成するには、以下の手順を完了してサインアップするだけです:

  • サインアップページでアカウントを作成する
  • メールアドレスまたはGoogle SSO、Microsoft SSO、AWS Marketplace、Google Cloud、Microsoft Azureを使用してサインアップできます
  • メールアドレスとパスワードでサインアップした場合は、次の24時間以内にメールで受け取ったリンクを通じてメールアドレスを確認することを忘れないでください
  • 作成したユーザー名とパスワードを使用してログインします
プランの選択

ログインすると、ClickHouse Cloudが新しいClickHouseサービスを作成するためのオンボーディングウィザードを開始します。サービスのデプロイに適した地域を選択し、新しいサービスに名前を付けます:

新しいClickHouseサービス

デフォルトでは、新しい組織はスケールティアに配置され、各レプリカが4 VCPUと16 GiB RAMを持つ3つの^^レプリカ^^を作成します。垂直オートスケーリングは、スケールティアでデフォルトで有効になります。サービスが作成されると、組織の「プラン」ページで組織のティアを変更できます。

ユーザーは必要に応じてサービスリソースをカスタマイズでき、レプリカのスケール間で最小および最大のサイズを指定できます。準備ができたら、Create serviceを選択します。

スケーリング制限

おめでとうございます!あなたのClickHouse Cloudサービスは稼働中で、オンボーディングは完了しました。データの取り込みとクエリの開始に関する詳細は、引き続きお読みください。

ClickHouseに接続する

ClickHouseに接続する方法は2つあります:

  • ウェブベースのSQLコンソールを使用して接続する
  • アプリで接続する

SQLコンソールを使用して接続する

すぐに始めるために、ClickHouseはオンボーディング完了時にリダイレクトされるウェブベースのSQLコンソールを提供しています。

SQLコンソール

クエリタブを作成し、接続が正常に動作していることを確認するためにシンプルなクエリを入力します:

SHOW databases

リストには4つのデータベースが表示され、追加したデータベースも表示されるはずです。

SQLコンソール

これで完了です - 新しいClickHouseサービスの使用を開始する準備が整いました!

アプリで接続する

ナビゲーションメニューから接続ボタンを押してください。モーダルが開き、サービスの資格情報を提供し、インターフェースまたは言語クライアントに接続する方法の一連の手順を提供します。

サービス接続

言語クライアントが表示されない場合は、統合のリストを確認してください。

データを追加する

ClickHouseはデータがあってこそ素晴らしいです!データを追加する方法はいくつかあり、そのほとんどはナビゲーションメニューでアクセスできるデータソースページで利用可能です。

データソース

以下の方法でデータをアップロードできます:

  • S3、Postgres、Kafka、GCSなどのデータソースからデータを取り込むためにClickPipeを設定する
  • SQLコンソールを使用する
  • ClickHouseクライアントを使用する
  • JSON、CSV、TSVを含むファイルをアップロードする
  • ファイルのURLからデータをアップロードする

ClickPipes

ClickPipesは、さまざまなソースからデータを取り込むためのマネージド統合プラットフォームであり、数回のクリックで簡単に実行できます。最も要求の厳しいワークロード向けに設計されたClickPipesの堅牢でスケーラブルなアーキテクチャは、一貫したパフォーマンスと信頼性を保証します。ClickPipesは、長期的なストリーミングニーズや一時的なデータロードジョブに使用できます。

データソースを選択

SQLコンソールを使用してデータを追加する

ほとんどのデータベース管理システムと同様に、ClickHouseではテーブルをデータベースに論理的にグループ化します。ClickHouseで新しいデータベースを作成するには、CREATE DATABASEコマンドを使用してください:

CREATE DATABASE IF NOT EXISTS helloworld

次のコマンドを実行して、helloworldデータベースにmy_first_tableという名前のテーブルを作成します:

CREATE TABLE helloworld.my_first_table
(
    user_id UInt32,
    message String,
    timestamp DateTime,
    metric Float32
)
ENGINE = MergeTree()
PRIMARY KEY (user_id, timestamp)

上記の例では、my_first_tableは4つのカラムを持つMergeTreeテーブルです:

  • user_id: 32ビット符号なし整数(UInt32
  • message: 他のデータベースシステムのVARCHARBLOBCLOBなどのタイプに代わる文字列データ型
  • timestamp: 時間の瞬間を表す日時
  • metric: 32ビット浮動小数点数(Float32
テーブルエンジン

テーブルエンジンは次のことを決定します:

  • データがどのように保存されるか、およびどこに保存されるか
  • どのクエリがサポートされるか
  • データがレプリケートされるかどうか

選択できるテーブルエンジンは多数ありますが、単一ノードのClickHouseサーバーでシンプルなテーブルを作成する場合は、MergeTreeが一般的な選択肢です。

主キーの簡単な紹介

さらに進む前に、ClickHouseにおける主キーの機能を理解することが重要です(主キーの実装は予想外に見えるかもしれません!):

  • ClickHouseの主キーはテーブル内の各行に対して一意ではありません

ClickHouseテーブルの^^主キー^^は、データがディスクに書き込まれるときの並べ替え方法を決定します。8,192行または10MBのデータ(インデックスの粒度と呼ばれる)のごとに、^^主キー^^インデックスファイルにエントリが作成されます。この粒度の概念は、メモリに容易に収まる**^^スパースインデックス^^**を作成し、グラニュールはSELECTクエリ中に処理される最小のカラムデータのストライプを表します。

^^主キー^^はPRIMARY KEYパラメータを使用して定義できます。PRIMARY KEYを指定せずにテーブルを定義すると、キーはORDER BY句に指定されたタプルになります。PRIMARY KEYORDER BYの両方を指定した場合、^^主キー^^はソート順序のサブセットでなければなりません。

^^主キー^^はまた^^ソートキー^^でもあり、タプルは(user_id, timestamp)です。したがって、各カラムファイルに保存されたデータはuser_idでソートされ、次にtimestampでソートされます。

ClickHouseの基本的な概念を深く掘り下げたい場合は、"コア概念"をご覧ください。

テーブルにデータを挿入する

ClickHouseでは、親しみのあるINSERT INTO TABLEコマンドを使用できますが、MergeTreeテーブルへの各挿入はストレージにパーツを作成することを理解することが重要です。

ClickHouseのベストプラクティス

バッチごとに大量の行を挿入します - 数万行、または数百万行を一度に挿入します。心配しないでください - ClickHouseはその種のボリュームを簡単に処理できます - そして、コストを節約することができますサービスへの書き込みリクエストを減らすことによって。


単純な例であっても、複数の行を一度に挿入してみましょう:

INSERT INTO helloworld.my_first_table (user_id, message, timestamp, metric) VALUES
    (101, 'Hello, ClickHouse!',                                 now(),       -1.0    ),
    (102, 'Insert a lot of rows per batch',                     yesterday(), 1.41421 ),
    (102, 'Sort your data based on your commonly-used queries', today(),     2.718   ),
    (101, 'Granules are the smallest chunks of data read',      now() + 5,   3.14159 )
注記

timestampカラムは、さまざまな日付および日時関数を使用して埋められています。ClickHouseには、関数セクションで確認できる便利な関数が数百あります。

動作したことを確認しましょう:

SELECT * FROM helloworld.my_first_table

ClickHouseクライアントを使用してデータを追加する

コマンドラインツールclickhouse clientを使用してClickHouse Cloudサービスに接続することもできます。左のメニューでConnectをクリックしてこれらの詳細にアクセスします。ダイアログから、ドロップダウンリストでNativeを選択します:

clickhouse client接続詳細

  1. ClickHouseをインストールします。

  2. 次のコマンドを実行します。ホスト名、ユーザー名、およびパスワードを置き換えてください:

./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \
--secure --port 9440 \
--user default \
--password <password>

スマイリーフェイスのプロンプトが表示されれば、クエリを実行する準備が整いました!

:)
  1. 次のクエリを実行してみてください:

SELECT *
FROM helloworld.my_first_table
ORDER BY timestamp

レスポンスがきれいなテーブル形式で返されることに注意してください:

┌─user_id─┬─message────────────────────────────────────────────┬───────────timestamp─┬──metric─┐
│     102 │ Insert a lot of rows per batch                     │ 2022-03-21 00:00:00 │ 1.41421 │
│     102 │ Sort your data based on your commonly-used queries │ 2022-03-22 00:00:00 │   2.718 │
│     101 │ Hello, ClickHouse!                                 │ 2022-03-22 14:04:09 │      -1 │
│     101 │ Granules are the smallest chunks of data read      │ 2022-03-22 14:04:14 │ 3.14159 │
└─────────┴────────────────────────────────────────────────────┴─────────────────────┴─────────┘

4 rows in set. Elapsed: 0.008 sec.
  1. FORMAT句を追加して、ClickHouseのサポートされている出力形式の1つを指定します:

SELECT *
FROM helloworld.my_first_table
ORDER BY timestamp
FORMAT TabSeparated

上記のクエリでは、出力がタブ区切りで返されます:

Query id: 3604df1c-acfd-4117-9c56-f86c69721121

102 Insert a lot of rows per batch      2022-03-21 00:00:00     1.41421
102 Sort your data based on your commonly-used queries  2022-03-22 00:00:00     2.718
101 Hello, ClickHouse!  2022-03-22 14:04:09     -1
101 Granules are the smallest chunks of data read       2022-03-22 14:04:14     3.14159

4 rows in set. Elapsed: 0.005 sec.
  1. clickhouse clientを終了するには、exitコマンドを入力します:

exit

ファイルをアップロードする

データベースの立ち上げ時に一般的なタスクは、既にファイルに持っているデータを挿入することです。クリックストリームデータを表すサンプルデータがオンラインにあり、ユーザーID、訪問したURL、イベントのタイムスタンプが含まれています。

data.csvというCSVファイルに次のテキストが含まれているとしましょう:

102,This is data in a file,2022-02-22 10:43:28,123.45
101,It is comma-separated,2022-02-23 00:00:00,456.78
103,Use FORMAT to specify the format,2022-02-21 10:43:30,678.90
  1. 次のコマンドは、my_first_tableにデータを挿入します:

./clickhouse client --host HOSTNAME.REGION.CSP.clickhouse.cloud \
--secure --port 9440 \
--user default \
--password <password> \
--query='INSERT INTO helloworld.my_first_table FORMAT CSV' < data.csv
  1. SQLコンソールからクエリを実行すると、新しい行がテーブルに表示されることに注意してください:

CSVファイルからの新しい行

次は?