ClickHouse/docs/ja/integrations/data-ingestion/clickpipes/kinesis.md
2024-11-18 11:58:58 +09:00

8.7 KiB
Raw Blame History

sidebar_label description slug
Amazon KinesisとClickPipesの統合 Amazon KinesisデータソースをClickHouse Cloudにシームレスに接続します。 /ja/integrations/clickpipes/kinesis

Amazon KinesisとClickHouse Cloudの統合

前提条件

ClickPipesの紹介に慣れており、IAM認証情報またはIAMロールを設定しています。Kinesis Role-Based Accessガイドに従って、ClickHouse Cloudと連携するロールの設定方法を確認してください。

最初のClickPipeを作成する

  1. ClickHouse CloudサービスのSQLコンソールにアクセスします。

    ClickPipes service

  2. 左側のメニューからData Sourcesボタンを選択し、「Set up a ClickPipe」をクリックします。

    Select imports

  3. データソースを選択します。

    Select data source type

  4. 名前、説明オプション、IAMロールまたは認証情報、その他の接続詳細を入力してClickPipeのフォームを記入します。

    Fill out connection details

  5. Kinesis Streamと開始オフセットを選択します。UIは選択したソースKafkaトピックなどのサンプルドキュメントを表示します。また、Kinesisストリームのパフォーマンスと安定性を向上させるためにEnhanced Fan-outを有効にすることができますEnhanced Fan-outの詳細はこちらこちらで確認できます)。

    Set data format and topic

  6. 次のステップでは、新しいClickHouseテーブルにデータを取り込むか、既存のテーブルを再利用するかを選択できます。画面の指示に従ってテーブル名、スキーマ、および設定を変更します。サンプルテーブルの上部で変更のリアルタイムプレビューを確認できます。

    Set table, schema, and settings

    提供されているコントロールを使用して高度な設定をカスタマイズすることもできます。

    Set advanced controls

  7. あるいは、既存のClickHouseテーブルにデータを取り込むことを選択することもできます。その場合、UIはソースから選択した宛先テーブルのClickHouseフィールドへのフィールドマッピングを許可します。

    Use and existing table

  8. 最後に、内部ClickPipesユーザーの権限を設定できます。

    Permissions: ClickPipesは宛先テーブルにデータを書き込む専用ユーザーを作成します。この内部ユーザーのためにカスタムロールまたは事前定義されたロールを選択できます

    • Full access: クラスターへの完全アクセスを持つ。これは、Materialized ViewまたはDictionaryを宛先テーブルで使用する場合に有用です。
    • Only destination table: 宛先テーブルへのINSERT権限のみを持つ。

    permissions

  9. 「Complete Setup」をクリックすると、システムはあなたのClickPipeを登録し、要約テーブルに表示されるようになります。

    Success notice

    Remove notice

    要約テーブルには、ClickHouseのソースまたは宛先テーブルからサンプルデータを表示するためのコントロールが含まれています。

    View destination

    さらにClickPipeを削除し、取り込みジョブの要約を表示するためのコントロールもあります。

    View overview

  10. おめでとうございます! 初めてのClickPipeを正常に設定しました。これがストリーミングClickPipeの場合、リモートデータソースからリアルタイムでデータを連続して取り込むことになります。そうでなければ、バッチを取り込み完了します。

サポートされているデータフォーマット

サポートされているフォーマットは次の通りです:

サポートされているデータ型

ClickPipesでは、以下のClickHouseデータ型が現在サポートされています

  • 基本数値型 - [U]Int8/16/32/64およびFloat32/64
  • 大きな整数型 - [U]Int128/256
  • Decimal型
  • ブール型
  • String
  • FixedString
  • Date, Date32
  • DateTime, DateTime64UTCタイムゾーンのみ
  • Enum8/Enum16
  • UUID
  • IPv4
  • IPv6
  • すべてのClickHouse LowCardinality型
  • Map上記の型およびNullableを使用したキーおよび値
  • TupleおよびArray上記の型およびNullableを使用した要素、一段階の深さのみ

Kinesis仮想カラム

Kinesisストリームに対してサポートされている仮想カラムは以下の通りです。新しい宛先テーブルを作成する際、Add Columnボタンを使用して仮想カラムを追加できます。

名前 説明 推奨データ型
_key Kinesis パーティションキー String
_timestamp Kinesis おおよその到着タイムスタンプ(ミリ秒精度) DateTime64(3)
_stream Kafka ストリーム名 String
_raw_message 完全な Kinesis メッセージ String

_raw_messageフィールドは、完全なKinesis JSONレコードが必要な場合例えば、ClickHouseのJsonExtract*関数を使用して下流のmaterialized viewを埋める場合に使用できます。このようなパイプでは、すべての「非仮想」カラムを削除することでClickPipesのパフォーマンスを向上させることができます。

制限事項

  • DEFAULTはサポートされていません。

パフォーマンス

バッチング

ClickPipesはデータをバッチでClickHouseに挿入します。これは、データベース内のパーツが多くなりすぎることによってクラスタのパフォーマンスに影響を与えることを避けるためです。

バッチは、以下のいずれかの条件を満たすと挿入されます:

  • バッチサイズが最大サイズに達したとき100,000行または20MB
  • バッチが最大時間5秒開かれていたとき

レイテンシー

レイテンシーKinesisメッセージがストリームに送信され、ClickHouseで利用可能になるまでの時間は、いくつかの要因kinesisのレイテンシー、ネットワークレイテンシー、メッセージサイズ/フォーマット)に依存します。上記のセクションに記載されているバッチングもレイテンシーに影響します。お客様の特定のユースケースをテストして、期待されるレイテンシーを理解することをお勧めします。

特定の低レイテンシー要件がある場合は、ここからお問い合わせください

スケーリング

Kinesis向けClickPipesは水平スケーリングを前提に設計されています。デフォルトでは、2つのコンシューマーを作成します。これを増やすには、こちらからお問い合わせください

認証

Amazon Kinesisストリームにアクセスするには、IAM認証情報またはIAMロールを使用できます。IAMロールの設定方法に関する詳細は、このガイドを参照して、ClickHouse Cloudと連携するロールの設定方法について確認できます。