メインコンテンツへスキップ
名前付きコレクションは、外部ソースとのインテグレーションを設定するためのキー・バリューのペアの集合を保存する仕組みです。名前付きコレクションは、辞書、テーブル、テーブル関数、オブジェクトストレージで使用できます。 名前付きコレクションは DDL または設定ファイルで設定でき、ClickHouse の起動時に適用されます。これにより、オブジェクトの作成が簡単になるほか、管理者アクセス権のないユーザーに認証情報を見せずに済みます。 名前付きコレクション内のキーは、対応する関数、テーブルエンジン、データベースなどのパラメータ名と一致している必要があります。以下の例では、各タイプごとにパラメータ一覧へのリンクを示しています。 名前付きコレクションで設定したパラメータは SQL で上書きできます。これについては以下の例で示します。この動作は、[NOT] OVERRIDABLE キーワード、XML 属性、および/または設定オプション allow_named_collection_override_by_default を使って制限できます。
上書きが許可されている場合、管理者アクセス権のないユーザーが 隠そうとしている認証情報を突き止められる可能性があります。 この目的で名前付きコレクションを使用している場合は、 allow_named_collection_override_by_default (デフォルトで有効) を無効にしてください。

system database に 名前付きコレクション を格納する

DDLの例

上記の例では:
  • key_1 は常にオーバーライドできます。
  • key_2 は一切オーバーライドできません。
  • url は、allow_named_collection_override_by_default の値によって、オーバーライドできる場合とできない場合があります。

DDL を使用して 名前付きコレクション を作成するための権限

DDL で 名前付きコレクション を管理するには、ユーザーに named_collection_control 権限が必要です。これは、/etc/clickhouse-server/users.d/ にファイルを追加することで付与できます。以下の例では、ユーザー defaultaccess_managementnamed_collection_control の両方の権限を付与しています。
/etc/clickhouse-server/users.d/user_default.xml
上記の例では、password_sha256_hex の値は、パスワードの SHA256 ハッシュを16進数で表したものです。ユーザー default のこの設定に replace=true 属性があるのは、デフォルト設定ですでに平文の password が設定されており、1人のユーザーに平文パスワードと sha256 hex パスワードの両方を設定することはできないためです。

名前付きコレクションの保存先

名前付きコレクションは、ローカルディスクまたは ZooKeeper/Keeper に保存できます。デフォルトではローカルストレージが使用されます。 また、ディスク暗号化で使用されるものと同じアルゴリズムを使って暗号化して保存することもでき、 デフォルトでは aes_128_ctr が使用されます。 名前付きコレクションの保存先を設定するには、type を指定する必要があります。指定できる値は local または keeper/zookeeper です。暗号化ストレージの場合は、 local_encrypted または keeper_encrypted/zookeeper_encrypted を使用できます。 ZooKeeper/Keeper を使用する場合は、configuration file の named_collections_storage セクションに path (名前付きコレクションの保存先となる ZooKeeper/Keeper 内のパス) も設定する必要があります。次の例では、暗号化と ZooKeeper/Keeper を使用しています。
省略可能な設定パラメータ update_timeout_ms のデフォルト値は 5000 です。

設定ファイルに named collections を保存する

XMLの例

/etc/clickhouse-server/config.d/named_collections.xml
上記の例では:
  • key_1 は常に上書きできます。
  • key_2 は上書きできません。
  • url は、allow_named_collection_override_by_default の値に応じて、上書きできる場合とできない場合があります。

名前付きコレクションの変更

DDLクエリで作成した名前付きコレクションは、DDLで変更または削除できます。XMLファイルで作成した名前付きコレクションは、対応するXMLを編集または削除して管理できます。

DDL の named collection を変更する

コレクション collection2key1key3 を変更または追加します (これらのキーの overridable フラグの値は変更されません) :
key1 キーを変更または追加し、常に上書き可能にします:
collection2 から key2 キーを削除します:
collection2 コレクションのキー key1 を変更または追加し、key3 を削除します:
overridable フラグのデフォルト設定をキーに適用するには、 そのキーを削除してから再度追加する必要があります。

DDL の名前付きコレクション collection2 を削除します:

S3 にアクセスするための名前付きコレクション

パラメータの説明については、s3テーブル関数を参照してください。

DDLの例

XMLの例

s3() 関数と S3テーブルの named collection の例

以下の 2 つの例では、どちらも同じ named collection s3_mydata を使用します。

s3() 関数

上記の s3() 関数の最初の引数は、名前付きコレクション s3_mydata の名前です。名前付きコレクションを使用しない場合は、アクセスキー ID、シークレット、フォーマット、URL を毎回 s3() 関数の呼び出し時に渡す必要があります。

S3 テーブル

MySQL データベースにアクセスするための 名前付きコレクション

パラメータの説明については、mysql を参照してください。

DDLの例

XML の例

mysql() 関数、MySQL テーブル、MySQL データベース、および Dictionary の named collection の例

以下の4つの例では、同じ named collection mymysql を使用します。

mysql() 関数

名前付きコレクション では table パラメータが指定されていないため、関数呼び出しで table = 'test' を指定します。

MySQLテーブル

DDL は、connection_pool_size の 名前付きコレクション の設定を上書きします。

MySQL データベース

MySQL Dictionary

PostgreSQLデータベースにアクセスするための名前付きコレクション

パラメータの説明については、postgresqlを参照してください。さらに、以下の別名があります。
  • user の別名として username
  • database の別名として db
パラメータ addresses_expr は、コレクション内では host:port の代わりに使用します。このパラメータは省略可能です。これは、hosthostnameport といった他の省略可能なパラメータがあるためです。優先順位は次の疑似コードで説明します。
作成例:
設定例:

postgresql 関数で named collections を使用する例

PostgreSQLエンジンのデータベースで名前付きコレクションを使用する例

PostgreSQL では、テーブルの作成時に名前付きコレクションからデータがコピーされます。後からコレクションを変更しても、既存のテーブルには反映されません。

PostgreSQLエンジンのデータベースで名前付きコレクションを使用する例

ソースが POSTGRESQL の Dictionary で 名前付きコレクション を使用する例

リモート ClickHouse データベースにアクセスするための名前付きコレクション

パラメータの説明は、remote を参照してください。 設定例:
secure は、接続には remoteSecure があるため必要ありませんが、辞書では使用できます。

remote/remoteSecure 関数で named collections を使う例

ソースが ClickHouse の Dictionary での named collections の使用例

Kafka へのアクセス用の名前付きコレクション

パラメータの説明は、Kafka を参照してください。

DDLの例

XMLの例

Kafkaテーブルで named collection を使用する例

以下の2つの例では、どちらも同じ named collection my_kafka_cluster を使用します。

バックアップ用の名前付きコレクション

パラメーターの説明は、バックアップと復元を参照してください。

DDL の例

XMLの例

MongoDB Table および Dictionary にアクセスするための named collections

パラメータの説明は mongodb を参照してください。

DDLの例

XMLの例

MongoDB テーブル

DDL によって、オプションに指定した 名前付きコレクション の設定は上書きされます。

MongoDB Dictionary

名前付きコレクション では、コレクション名に my_collection を指定しています。関数呼び出しでは、別のコレクションを選択するために collection = 'my_dict' を指定してこれを上書きします。
最終更新日 2026年6月19日