[NOT] OVERRIDABLE 关键字、XML 属性
和/或配置选项 allow_named_collection_override_by_default 来限制这种能力。
将命名集合存储在 system 数据库中
DDL 示例
key_1始终可以被覆盖。key_2永远不能被覆盖。url是否可以被覆盖,取决于allow_named_collection_override_by_default的值。
使用 DDL 创建 命名集合 的权限要求
named_collection_control 特权。可通过在 /etc/clickhouse-server/users.d/ 中添加文件来授予该权限。以下示例为用户 default 同时授予 access_management 和 named_collection_control 特权:
/etc/clickhouse-server/users.d/user_default.xml
命名集合的存储
aes_128_ctr。
要配置命名集合存储,需要指定一个 type。它可以是 local 或 keeper/zookeeper。对于加密存储,
可以使用 local_encrypted 或 keeper_encrypted/zookeeper_encrypted。
要使用 ZooKeeper/Keeper,还需要在配置文件的 named_collections_storage 部分中设置一个 path (即 ZooKeeper/Keeper 中存储命名集合的路径) 。
下面的示例使用了加密和 ZooKeeper/Keeper:
update_timeout_ms 的默认值为 5000。
在配置文件中存储命名集合
XML 示例
/etc/clickhouse-server/config.d/named_collections.xml
key_1始终可以被覆盖。key_2绝不会被覆盖。url是否可以被覆盖,取决于allow_named_collection_override_by_default的值。
修改命名集合
修改 DDL 命名集合
collection2 中的键 key1 和 key3
(这不会更改这些键的 overridable 标志值) :
key1,并允许始终覆盖它:
collection2 中删除键 key2:
collection2 的键 key1,并删除键 key3:
overridable 标志上使用默认设置,你必须
先删除该键,然后重新添加。
删除名为 collection2 的 DDL 命名集合:
用于访问 S3 的命名集合
DDL 示例
XML 示例
s3() 函数和 S3 表的命名集合示例
s3_mydata:
s3() 函数
S3 表
用于访问 MySQL 数据库的命名集合
DDL 示例
XML 示例
mysql() 函数、MySQL 表、MySQL 数据库和字典的命名集合示例
mymysql:
mysql() 函数
该 命名集合 未指定
table 参数,因此需在函数调用中指定 table = 'test'。MySQL 表
DDL 会覆盖命名集合中的 connection_pool_size 设置。
MySQL 数据库
MySQL 字典
用于访问 PostgreSQL 数据库的命名集合
username是user的别名db是database的别名。
addresses_expr 用于替代 host:port。该参数是可选的,因为还可以使用其他可选参数:host、hostname、port。以下伪代码说明了优先级:
使用命名集合的 postgresql 函数示例
在 PostgreSQL 引擎数据库中使用命名集合的示例
PostgreSQL 会在创建表时从命名集合中复制数据。此后,即使命名集合发生变化,也不会影响现有表。
将命名集合用于 PostgreSQL 引擎数据库的示例
在源为 POSTGRESQL 的字典中使用命名集合的示例
用于访问远程 ClickHouse 数据库的命名集合
remoteSecure,因此连接无需 secure,但它可用于字典。
结合命名集合使用 remote/remoteSecure 函数的示例
使用源为 ClickHouse 的字典和命名集合的示例
用于访问 Kafka 的命名集合
DDL 示例
XML 示例
使用命名集合的 Kafka 表示例
my_kafka_cluster:
用于备份的命名集合
DDL 示例
XML 示例
用于访问 MongoDB 表和字典的命名集合
DDL 示例
XML 示例
MongoDB 表
DDL 会覆盖 命名集合 中这些选项的配置。
MongoDB 字典
该命名集合将
my_collection 指定为集合名称。在函数调用中,可通过 collection = 'my_dict' 将其覆盖,以选择另一个集合。