メインコンテンツへスキップ

対応データソース

名称ロゴ種別ステータス説明
Apache KafkaApache Kafka ロゴストリーミング安定版ClickPipes を設定し、Apache Kafka から ClickHouse Cloud へのストリーミングデータの取り込みを開始します。
Confluent CloudConfluent Cloud ロゴストリーミング安定版直接インテグレーションにより、Confluent と ClickHouse Cloud の連携を活用できます。
RedpandaRedpanda ロゴストリーミング安定版ClickPipes を設定し、Redpanda から ClickHouse Cloud へのストリーミングデータの取り込みを開始します。
AWS MSKAWS MSK ロゴストリーミング安定版ClickPipes を設定し、AWS MSK から ClickHouse Cloud へのストリーミングデータの取り込みを開始します。
Azure Event HubsAzure Event Hubs ロゴストリーミング安定版ClickPipes を設定し、Azure Event Hubs から ClickHouse Cloud へのストリーミングデータの取り込みを開始します。
WarpStreamWarpStream ロゴストリーミング安定版ClickPipes を設定し、WarpStream から ClickHouse Cloud へのストリーミングデータの取り込みを開始します。

対応データフォーマット

対応しているフォーマットは次のとおりです。

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

標準

現在、ClickPipes では以下の標準的な ClickHouse データ型がサポートされています。
  • 基本的な数値型 - [U]Int8/16/32/64、Float32/64、BFloat16
  • 大きな整数型 - [U]Int128/256
  • Decimal 型
  • Boolean
  • String
  • FixedString
  • Date、Date32
  • DateTime、DateTime64 (UTC タイムゾーンのみ)
  • Enum8/Enum16
  • UUID
  • IPv4
  • IPv6
  • Time、Time64
  • JSON
  • すべての ClickHouse LowCardinality 型
  • キーと値に上記のいずれかの型を使用する Map (Nullable を含む)
  • 要素に上記のいずれかの型を使用する Tuple と Array (Nullable を含む、深さは 1 レベルのみ)
  • SimpleAggregateFunction 型 (AggregatingMergeTree または SummingMergeTree の宛先向け)

Variant 型のサポート

ClickPipes は、次の条件で Variant 型をサポートします。
  • Avro のユニオン。Avro スキーマに複数の NULL 以外の型を含むユニオンがある場合、ClickPipes は適切な Variant 型を推論します。それ以外の Avro データでは、Variant 型はサポートされません。
  • JSON フィールド。ソースデータストリーム内の任意の JSON フィールドに対して、Variant 型 (Variant(String, Int64, DateTime) など) を 手動で指定できます。複雑なサブタイプ (Array/Map/Tuple) はサポートされません。また、ClickPipes では使用すべき Variant のサブタイプを判定する仕組み上、Variant の定義で使用できる整数型または datetime 型は 1 つのみです。たとえば、Variant(Int64, UInt32) はサポートされません。

JSON 型のサポート

ClickPipes は、次の状況で JSON 型をサポートします。
  • Avro の Record フィールドと Protobuf の Message フィールドは、常に JSON カラムに割り当てることができます。
  • Avro の String フィールドと Bytes フィールドは、Avro フィールドに実際には JSON オブジェクトを表す文字列が含まれている場合、JSON カラムに割り当てることができます。
  • Protobuf の String 型と Bytes 型は、Protobuf フィールドに実際には JSON オブジェクトを表す文字列が含まれている場合、JSON カラムに割り当てることができます。
  • 値が常に JSON オブジェクトである JSON フィールドは、宛先の JSON カラムに割り当てることができます。
fixed パスや skipped パスを含め、宛先カラムは目的の JSON 型に手動で変更する必要があることに注意してください。

Avro

サポートされる Avro データ型

ClickPipes は、local-timestamp-millislocal_timestamp-micros を除くすべての Avro Primitive 型、Complex 型、および Logical 型をサポートしています。Avro の record 型は Tuple に、array 型は Array に、map は Map に変換されます (キーは文字列のみ) 。一般的には、こちら に記載されている変換が利用可能です。ClickPipes は型変換時のオーバーフローや精度の損失をチェックしないため、Avro の数値型では厳密に対応する型を使用することを推奨します。 また、すべての Avro 型は String カラムに挿入することもでき、その場合は有効な JSON 文字列として表されます。

Nullable 型と Avro ユニオン

Avro の Nullable 型は、T を基本の Avro 型として、(T, null) または (null, T) のユニオン スキーマを使って定義されます。スキーマ推論時には、このようなユニオンは ClickHouse の Nullable カラムにマッピングされます。なお、ClickHouse は Nullable(Array)Nullable(Map)Nullable(Tuple) 型をサポートしていません。これらの型に対する Avro の null ユニオンは、非 Nullable 型にマッピングされます (Avro の Record 型は ClickHouse の named Tuple にマッピングされます) 。これらの型における Avro の null は、次のように挿入されます。
  • null の Avro array の場合は空の Array
  • null の Avro Map の場合は空の Map
  • null の Avro Record の場合は、すべてのフィールドがデフォルト値またはゼロ値の named Tuple

Protobuf

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

ClickPipes は、長らく非推奨となっている proto 2 の group 型を除き、Protobuf 2 および 3 のすべての型をサポートしています。基本的な型変換には、以下のマッピングが使用されます。
すべての基本型で、ArrayMapNullable の各バリアントもサポートされています。
Protobuf typeClickHouse type
boolUInt8
floatFloat32
doubleFloat64
int32, sint32, sfixed32Int32
int64, sint64, sfixed64Int64
uint32, fixed32UInt32
uint64, fixed64UInt64
string, bytesString
enumEnum
repeated TArray(T)
messageTuple
数値型では、オーバーフローや精度低下を避けるため、厳密に対応する型を使用することを推奨します。
次の 既知の型 もサポートされています。
Well-known typeClickHouse type
google.protobuf.TimestampDateTime, DateTime64
google.protobuf.DurationTime, Time64
google.protobuf.StringValue, google.protobuf.BytesValueNullable(String)
google.protobuf.Int32Value, google.protobuf.SInt32Value, google.protobuf.SFixed32ValueNullable(Int32)
google.protobuf.Int64Value, google.protobuf.SInt64Value, google.protobuf.SFixed64ValueNullable(Int64)
google.protobuf.UInt32Value, google.protobuf.Fixed32ValueNullable(UInt32)
google.protobuf.UInt64Value, google.protobuf.Fixed64ValueNullable(UInt64)
google.protobuf.FloatValueNullable(Float32)
google.protobuf.DoubleValueNullable(Float64)
google.protobuf.BoolValueNullable(UInt8)

Protobuf oneof

スキーマ推論では、Protobuf の oneof フィールドはデフォルトで名前付き Tuple にマッピングされ、非デフォルト値を持つフィールドは最大でも 1 つだけです。これらのフィールドは、設定されている構成フィールドの型をアクティブな値が取る Variant カラムに自動的にマッピングすることもできます。あるいは、各構成フィールドをそれぞれ個別の ClickHouse カラムに手動でマッピングすることもできます。oneof フィールドは相互排他的であるため、各レコードで値が入るカラムは 1 つだけです。

メッセージのリスト

ClickPipe 用に定義された最上位の Protobuf スキーマに、それ自体が protobuf の Message である単一の repeated フィールドが含まれている場合、スキーマ推論とカラムマッピングは、その「内包された」Message フィールドに基づいて行われます。Kafka メッセージはそのようなメッセージのリストとして処理され、1 つの Kafka メッセージが複数の ClickHouse の行に展開されます。

Kafka 仮想カラム

以下の仮想カラムは、Kafka 互換のストリーミングデータソースでサポートされています。新しい宛先を作成する際は、Add Column ボタンを使用して仮想カラムをターゲットテーブルに追加できます。
名前説明推奨データ型
_keyKafka メッセージキーString
_timestampKafka タイムスタンプ (ミリ秒精度)DateTime64(3)
_partitionKafka パーティションInt32
_offsetKafka オフセットInt64
_topicKafka トピックString
_header_keysレコードヘッダー内のキーの並列配列Array(String)
_header_valuesレコードヘッダー内の値の並列配列Array(String)
_raw_messageKafka メッセージ全体String
_raw_message カラムは、JSON データに対してのみ推奨される点に注意してください。 JSON 文字列だけが必要なユースケースでは (たとえば、ClickHouse の JsonExtract* 関数を使用して 下流の materialized view にデータを投入する場合) 、「仮想ではない」カラムをすべて削除することで ClickPipes のパフォーマンスが向上することがあります。
最終更新日 2026年6月10日