適用於 PostgreSQL 的 Azure Cosmos DB 分散式 SQL API
適用於: Azure Cosmos DB for PostgreSQL (由 PostgreSQL 的超大規模 (Citus) 資料庫延伸模組提供)
Azure Cosmos DB for PostgreSQL 包含標準 PostgreSQL 以外的功能。 以下是函式和組態選項的分類參考:
- 跨分區平行處理查詢執行
- 管理多部伺服器之間的分區化資料
- 使用分欄儲存體壓縮資料
- 自動化時間範圍分割
SQL 函式
分區化
名稱 | 描述 |
---|---|
alter_distributed_table | 變更分散式數據表的散發數據行、分區計數或共置屬性 |
citus_copy_shard_placement | 使用狀況良好位置的數據修復非使用中分區放置 |
citus_schema_distribute | 將 PostgreSQL 架構轉換成分散式架構 |
citus_schema_undistribute | 復原citus_schema_distribute的動作 |
create_distributed_table | 將 PostgreSQL 資料表轉換成分散式 (分區化) 資料表 |
create_reference_table | 在所有節點之間保持數據表的完整復本同步 |
citus_add_local_table_to_metadata | 將本機數據表新增至元數據,以從任何節點進行查詢 |
isolate_tenant_to_new_shard | 建立新的分區,以保存散發數據行中具有特定單一值的數據列 |
truncate_local_data_after_distributing_table | 在散發數據表之後截斷所有本機數據列 |
undistribute_table | 復原create_distributed_table或create_reference_table的動作 |
分區重新平衡
名稱 | 描述 |
---|---|
citus_add_rebalance_strategy | 將數據列附加至 pg_dist_rebalance_strategy |
citus_move_shard_placement | 通常間接在分區重新平衡期間使用,而不是由資料庫管理員直接呼叫 |
citus_set_default_rebalance_strategy | 將依其自變數命名的策略變更為重新平衡分區時選擇的預設 |
get_rebalance_progress | 監視計畫執行的移動 rebalance_table_shards |
get_rebalance_table_shards_plan | 輸出規劃的分區移動rebalance_table_shards而不執行它們 |
rebalance_table_shards | 移動指定數據表的分區,使其平均散發給背景工作角色 |
共置
名稱 | 描述 |
---|---|
create_distributed_function | 讓函式在共置分區附近的背景工作角色上執行 |
update_distributed_table_colocation | 更新或中斷分散式數據表的共置 |
分欄儲存
名稱 | 描述 |
---|---|
alter_columnar_table_set | 變更單欄數據表上的設定 |
alter_table_set_access_method | 在堆積或單欄式記憶體之間轉換數據表 |
時間分割
名稱 | 描述 |
---|---|
alter_old_partitions_set_access_method | 變更數據分割的儲存方法 |
create_time_partitions | 建立指定間隔的數據分割,以涵蓋指定時間範圍 |
drop_old_time_partitions | 拿掉間隔落在指定時間戳之前的所有分割區 |
資訊
名稱 | 描述 |
---|---|
citus_get_active_worker_nodes | 取得作用中背景工作角色主機名和埠號碼 |
citus_relation_size | 取得指定分散式數據表的所有分區所使用的磁碟空間 |
citus_remote_connection_stats | 顯示每個遠端節點的作用中連線數目 |
citus_stat_statements_reset | 從中移除所有數據列 citus_stat_statements |
citus_table_size | 取得指定分散式數據表的所有分區所使用的磁碟空間,不包括索引 |
citus_total_relation_size | 取得指定分散式數據表的所有分區所使用的磁碟空間總計,包括所有索引和快顯通知數據 |
column_to_column_name | 將的數據 partkey 行 pg_dist_partition 轉譯為文字數據行名稱 |
get_shard_id_for_distribution_column | 尋找與散發數據行值相關聯的分區標識碼 |
伺服器參數
查詢執行
名稱 | 描述 |
---|---|
citus.all_modifications_commutative | 允許所有命令宣告共享鎖定 |
citus.count_distinct_error_rate | 微調 postgresql-hll 近似計數的錯誤率 |
citus.enable_repartition_joins | 允許在非散發數據行上建立的 JOIN |
citus.enable_repartitioned_insert_select | 允許從 SELECT 語句重新分割數據列,並在背景工作角色之間傳輸數據列以進行插入 |
citus.limit_clause_row_fetch_count | 要針對限制子句優化擷取每個工作的數據列數目 |
citus.local_table_join_policy | 在本機和分散式數據表之間執行聯結時,數據在何處移動 |
citus.multi_shard_commit_protocol | 在哈希分散式數據表上執行 COPY 時要使用的認可通訊協定 |
citus.propagate_set_commands | 哪些 SET 命令會從協調器傳播到背景工作角色 |
citus.create_object_propagation | 支持物件的交易中 CREATE 語句的行為 |
citus.use_citus_managed_tables | 允許在背景工作節點查詢中存取本機數據表 |
資訊
名稱 | 描述 |
---|---|
citus.explain_all_tasks | 讓 EXPLAIN 輸出顯示所有工作 |
citus.explain_analyze_sort_method | EXPLAIN ANALYZE 輸出中工作的排序方法 |
citus.log_remote_commands | 協調器傳送至背景工作節點的記錄查詢 |
citus.multi_task_query_log_level | 任何產生多個工作的查詢的記錄層級 |
citus.stat_statements_max | 要儲存的數據列數目上限 citus_stat_statements |
citus.stat_statements_purge_interval | 維護精靈從 中不相符的記錄中移除記錄 citus_stat_statements 的頻率 pg_stat_statements |
citus.stat_statements_track | 啟用/停用語句追蹤 |
citus.show_shards_for_app_name_prefixes | 允許針對想要查看這些分區的選取客戶端顯示分區 |
citus.override_table_visibility | 啟用/停用分區隱藏 |
節點間連線管理
名稱 | 描述 |
---|---|
citus.executor_slow_start_interval | 開啟與相同背景工作節點連線之間的毫秒等候時間 |
citus.force_max_query_parallelization | 盡可能開啟多個連線 |
citus.max_adaptive_executor_pool_size | 每個會話的背景工作角色連線上限 |
citus.max_cached_conns_per_worker | 保持開啟的連線數目,以加速後續命令 |
citus.node_connection_timeout | 等候連線建立的最大持續時間(以毫秒為單位) |
資料轉移
名稱 | 描述 |
---|---|
citus.enable_binary_protocol | 使用 PostgreSQL 的二進位串行化格式(適用時)與背景工作角色傳輸數據 |
citus.max_intermediate_result_size | 無法向下推送之 CTE 和子查詢的中繼結果 KB 大小 |
鎖死
名稱 | 描述 |
---|---|
citus.distributed_deadlock_detection_factor | 檢查分散式死結之前等待的時間 |
citus.log_distributed_deadlock_detection | 是否要在伺服器記錄檔中記錄分散式死結偵測相關處理 |
系統資料表
協調器節點包含元數據數據表和檢視表,可協助您查看整個叢集的數據屬性和查詢活動。
名稱 | 描述 |
---|---|
citus_dist_stat_activity | 在所有節點上執行的分散式查詢 |
citus_lock_waits | 整個叢集遭到封鎖的查詢 |
citus_shards | 每個分區的位置、它所屬的數據表類型,以及其大小 |
citus_stat_statements | 關於查詢的執行方式,以及針對誰執行查詢的統計數據 |
citus_tables | 所有分散式和參考數據表的摘要 |
citus_worker_stat_activity | 背景工作角色的查詢,包括個別分區上的工作 |
pg_dist_colocation | 哪些數據表的分區應該放在一起 |
pg_dist_node | 叢集中背景工作節點的相關信息 |
pg_dist_object | 物件,例如在協調器節點上建立的類型和函式,並傳播至背景工作節點 |
pg_dist_placement | 背景工作節點上分區複本的位置 |
pg_dist_rebalance_strategy | rebalance_table_shards 可用來判斷要移動分區位置的策略 |
pg_dist_shard | 每個分區的數據表、散發數據行和值範圍 |
time_partitions | 這類函式所管理之每個分割區的相關信息,例如 create_time_partitions 和 drop_old_time_partitions |