警告
TimescaleDB v2.13 是最后一个包含对 PostgreSQL 13、14 和 15 版本多节点支持的版本。
此过程用于在访问节点上跨分布式数据库的数据节点执行 SQL 命令。例如,一个用例是在分布式数据库中创建所需的角色和权限。
该过程可以以事务方式运行分布式命令,因此命令要么在所有地方执行,要么在任何地方都不执行。但是,并非所有 SQL 命令都可以在事务中运行。这可以通过参数 transactional
进行切换。请注意,如果执行不是事务性的,则数据节点上的故障需要手动处理任何引入的不一致。
请注意,该命令不会在访问节点本身上执行,并且无法在一个调用中链接多个命令。
重要
您不能将 distributed_exec
与某些 SQL 命令一起运行。例如,ALTER EXTENSION
不起作用,因为它不能在 TimescaleDB 扩展已加载后调用。
名称 | 类型 | 描述 |
---|---|---|
query | TEXT | 要在数据节点上执行的命令。 |
名称 | 类型 | 描述 |
---|---|---|
node_list | ARRAY | 一个数据节点数组,命令应在此处执行。如果未指定,则默认为所有数据节点。 |
transactional | BOOLEAN | 允许指定语句的执行是否应为事务性的。默认为 TRUE。 |
在分布式数据库的所有数据节点上创建角色 testrole
CALL distributed_exec($$ CREATE USER testrole WITH LOGIN $$);
在两个指定数据节点上创建角色 testrole
CALL distributed_exec($$ CREATE USER testrole WITH LOGIN $$, node_list => '{ "dn1", "dn2" }');
在所有数据节点上创建表 example
CALL distributed_exec($$ CREATE TABLE example (ts TIMESTAMPTZ, value INTEGER) $$);
在数据节点上创建新数据库 dist_database
,这需要将 transactional
设置为 FALSE
CALL distributed_exec('CREATE DATABASE dist_database', transactional => FALSE);
关键词
此页面有问题?报告问题 或 在 GitHub 上编辑此页面
在 GitHub。