Azure Cosmos DB for PostgreSQL の分散 SQL API

適用対象: Azure Cosmos DB for PostgreSQL (PostgreSQL の Citus データベース拡張機能を利用)

Azure Cosmos DB for PostgreSQL には、標準の PostgreSQL 以外の機能が含まれています。 次に、関数と構成オプションのカテゴリ別のリファレンスを示します。

  • シャード間でのクエリ実行の並列化
  • 複数のサーバー間でのシャード化データの管理
  • 列指向ストレージを使用したデータの圧縮
  • 時系列パーティション分割の自動化

SQL 関数

シャーディング

名前 説明
alter_distributed_table 分散テーブルのディストリビューション列、シャード数、またはコロケーション プロパティを変更します
citus_copy_shard_placement 正常な配置のデータを使用して、非アクティブなシャードの配置を修復します
create_distributed_table PostgreSQL テーブルを分散 (シャード化) テーブルに変換します
create_reference_table すべてのノードにわたって同期されるテーブルの完全なコピーを保持します
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 指定されたタイムスタンプより前に間隔がある、すべてのパーティションを削除します

Informational

名前 説明
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 すべてのインデックスと TOAST データを含む、指定された分散テーブルのすべてのシャードによって使用されている合計ディスク領域を取得します
column_to_column_name pg_dist_partitionpartkey 列をテキストの列名に変換します
get_shard_id_for_distribution_column ディストリビューション列の値に関連付けられているシャード ID を検索します

サーバー パラメーター

クエリ実行

名前 説明
citus.all_modifications_commutative すべてのコマンドに対して共有ロックの要求を許可します
citus.count_distinct_error_rate postgresql-hll 概数カウントのエラー率を調整します
citus.enable_repartition_joins 非ディストリビューション列での結合を許可します
citus.enable_repartitioned_insert_select SELECT ステートメントから行を再パーティション分割して、挿入のためにワーカー間で転送することを許可します
citus.limit_clause_row_fetch_count limit 句の最適化のためにタスクごとにフェッチする行数を設定します
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 ワーカー ノード クエリでのローカル テーブルへのアクセスを許可します

Informational

名前 説明
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 メンテナンス デーモンが pg_stat_statements で不一致のレコードを citus_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 単位)

Deadlock

名前 説明
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_partitionsdrop_old_time_partitions などの関数によって管理される各パーティションに関する情報

次のステップ