Citus 11 官方手冊腦圖 - PostgreSQL 超大規模分散式資料庫解決方案上手指南

語言: CN / TW / HK

Citus 11 腦圖.png

腦圖大綱

  • 入門
    • 什麼是Citus?
      • Citus 可以擴充套件多遠?
    • 何時使用 Citus
      • 多租戶資料庫
      • 實時分析
      • 使用注意事項
      • 何時 Citus 不合適
    • 快速教程
      • 多租戶應用程式
        • 資料模型和示例資料
        • 建立表
        • 分發表和載入資料
        • 執行查詢
      • 實時分析
        • 資料模型和樣本資料
        • 建立表
        • 分發表和載入資料
        • 執行查詢
  • 安裝
    • 單節點 Citus
      • Docker (Mac 或 Linux)
      • Ubuntu 或 Debian
      • Fedora, CentOS, 或 Red Hat
    • 多節點 Citus
      • Ubuntu 或 Debian
        • 在所有節點上執行的步驟
        • 在協調器節點上執行的步驟
      • Fedora, CentOS, 或 Red Hat
        • 在所有節點上執行的步驟
        • 在協調器節點上執行的步驟
    • 託管部署
  • 用例指南
    • 多租戶應用程式
      • 讓我們做一個 App - 廣告分析
      • 擴充套件關係資料模型
      • 準備表和攝取資料
        • 自己試試
      • 整合應用程式
      • 在租戶之間共享資料
      • 線上更改 Schema
      • 當租戶的資料不同時
      • 擴充套件硬體資源
      • 與大租戶打交道
      • 從這往哪兒走
    • 實時面板
      • 資料模型
      • 彙總
      • 過期的舊資料
      • 近似相異計數
      • 使用 JSONB 的非結構化資料
    • 時間序列資料
      • 擴充套件 Citus 上的時間序列資料
      • 自動建立分割槽
      • 使用列式儲存歸檔
        • 將行分割槽歸檔到列式儲存
  • 架構
    • 概念
      • 節點
        • 協調器與工作器
      • 分散式資料
        • 表型別
          • 型別 1:分散式表
          • 型別 2:引用表
          • 型別 3:本地表
        • 分片
          • 分片放置
        • 共置
        • 並行性
      • 查詢執行
  • 開發
    • 確定應用程式型別
      • 概覽
      • 示例和特徵
    • 選擇分佈列
      • 多租戶應用
        • 最佳實踐
      • 實時應用
        • 最佳實踐
      • 時間序列資料
        • 最佳實踐
      • 表共置
        • Citus 中用於 hash-distributed 表的資料共置
        • 共置的實際示例
        • 使用常規 PostgreSQL 表
        • 按 ID 分佈表
        • 按租戶分佈表
        • 共置意味著更好的功能支援
        • 查詢效能
    • 遷移現有應用程式
      • 確定分佈策略
        • 選擇分佈鍵
        • 確定表的型別
      • 為遷移準備源表
        • 新增分佈鍵
        • 回填新建立的列
      • 準備申請 Citus
        • 設定 Development Citus 叢集
          • 在鍵中包含分佈列
        • 向查詢新增分佈鍵
          • Ruby on Rails
          • Django
          • ASP.NET
          • Java Hibernate
          • 其他(SQL原則)
        • 啟用安全連線
        • 檢查跨節點流量
      • 遷移生產資料
        • 小型資料庫遷移
        • 大資料庫遷移
          • 複製 schema
          • 啟用邏輯複製
          • 開放訪問網路連線
          • 開始複製
          • 切換到 Citus 並停止與舊資料庫的所有連線
    • SQL 參考
      • 建立和修改分散式物件 (DDL)
        • 建立和分發表
          • 引用表
          • 分發協調器資料
        • 共置表
          • 從 Citus 5.x 升級
        • 刪除表
        • 修改表
          • 新增/修改列
          • 新增/刪除約束
          • 使用 NOT VALID 約束
          • 新增/刪除索引
        • 型別和函式
        • 手動修改
      • 攝取、修改資料 (DML)
        • 插入資料
          • “From Select” 子句(分散式彙總)
          • COPY 命令(批量載入)
      • 使用匯總快取聚合
        • 更新和刪除
        • 最大化寫入效能
      • 查詢分散式表 (SQL)
        • 聚合函式
          • Count (Distinct) 聚合
          • 估計 Top N 項
          • 百分位數計算
        • 限制下推
        • 分散式表的檢視
        • 連線
          • 共置連線
          • 引用表連線
          • 重新分割槽連線
      • 查詢處理
        • 分散式查詢規劃器
        • 分散式查詢執行器
          • 子查詢/CTE Push-Pull 執行
        • PostgreSQL 規劃器和執行器
      • 手動查詢傳播
        • 在所有 Worker 上執行
        • 在所有分片上執行
        • 限制
      • SQL 支援和解決方法
        • 解決方法
          • 使用 CTE 解決限制
          • 臨時表:不得已的解決方法
    • Citus API
      • Citus 效用函式
        • 表和分片 DDL
          • create_distributed_table
          • truncate_local_data_after_distributing_table
          • undistribute_table
          • alter_distributed_table
          • alter_table_set_access_method
          • remove_local_tables_from_metadata
          • create_reference_table
          • citus_add_local_table_to_metadata
          • mark_tables_colocated
          • update_distributed_table_colocation
          • create_distributed_function
          • alter_columnar_table_set
          • create_time_partitions
          • drop_old_time_partitions
          • alter_old_partitions_set_access_method
        • 元資料/配置資訊
          • citus_add_node
          • citus_update_node
          • citus_set_node_property
          • citus_add_inactive_node
          • citus_activate_node
          • citus_disable_node
          • citus_add_secondary_node
          • citus_remove_node
          • citus_get_active_worker_nodes
          • citus_backend_gpid
          • citus_check_cluster_node_health
          • citus_set_coordinator_host
          • master_get_table_metadata
          • get_shard_id_for_distribution_column
          • column_to_column_name
          • citus_relation_size
          • citus_table_size
          • citus_total_relation_size
          • citus_stat_statements_reset
        • 叢集管理與修復函式
          • citus_move_shard_placement
          • rebalance_table_shards
          • get_rebalance_table_shards_plan
          • get_rebalance_progress
          • citus_add_rebalance_strategy
          • citus_set_default_rebalance_strategy
          • citus_remote_connection_stats
          • citus_drain_node
          • isolate_tenant_to_new_shard
          • citus_create_restore_point
      • Citus 表和檢視
        • 協調器元資料
          • 分割槽表
          • 分片表
          • 分片資訊檢視
          • 分片放置表
          • 工作器節點表
          • 分散式物件表
          • Citus 表檢視
          • 時間分割槽檢視
          • 歸置組表
          • 再平衡器策略表
          • 查詢統計資訊表
          • 分散式查詢活動
        • 所有節點上的表
          • 連線憑證表
          • 連線池憑證
      • 配置參考
        • 通用配置
          • citus.max_worker_nodes_tracked (integer)
          • citus.use_secondary_nodes (enum)
          • citus.cluster_name (text)
          • citus.enable_version_checks (boolean)
          • citus.log_distributed_deadlock_detection (boolean)
          • citus.distributed_deadlock_detection_factor (floating point)
          • citus.node_connection_timeout (integer)
          • citus.node_conninfo (text)
          • citus.local_hostname (text)
          • citus.show_shards_for_app_name_prefixes (text)
        • 查詢統計
          • citus.stat_statements_purge_interval (integer)
          • citus.stat_statements_max (integer)
          • citus.stat_statements_track (enum)
        • 資料載入
          • citus.multi_shard_commit_protocol (enum)
          • citus.shard_count (integer)
          • citus.shard_max_size (integer)
          • citus.replicate_reference_tables_on_activate (boolean)
        • 規劃器配置
          • citus.local_table_join_policy (enum)
          • citus.limit_clause_row_fetch_count (integer)
          • citus.count_distinct_error_rate (floating point)
          • citus.task_assignment_policy (enum)
        • 中間資料傳輸
          • citus.binary_worker_copy_format (boolean)
          • citus.max_intermediate_result_size (integer)
        • DDL
          • citus.enable_ddl_propagation (boolean)
          • citus.enable_local_reference_table_foreign_keys (boolean)
        • 執行器配置
          • 通用
          • Explain 輸出
    • 外部整合
      • 從 Kafka 提取資料
        • 注意事項
      • 從 Spark 攝取資料
      • Tableau 的商業智慧
  • 管理
    • 叢集管理
      • 選擇叢集大小
        • 分片數
          • 多租戶 SaaS 用例
          • 實時分析用例
      • 初始硬體大小
        • 多租戶 SaaS 用例
        • 實時分析用例
      • 擴充套件叢集
        • 新增 worker
        • 無需停機即可重新平衡分片
          • 工作原理
        • 新增協調器
      • 處理節點故障
        • 工作節點故障
        • 協調節點故障
      • 租戶隔離
      • 檢視查詢統計資訊
        • 統計過期
      • 資源保護
        • 限制長時間執行的查詢
      • 安全
        • 連線管理
        • 設定證書頒發機構簽署的證書
        • 提高 Worker 安全
        • 行級安全
      • PostgreSQL 擴充套件
      • 建立新資料庫
    • 表管理
      • 確定表和關係大小
      • 清理分散式表
      • 分析分散式表
      • 列式儲存
        • 用法
        • 測量壓縮
        • 例子
        • 陷阱
        • 限制
    • 升級 Citus
      • 升級 Citus 版本
        • 補丁版本升級
        • 主要和次要版本升級
          • 步驟 1. 更新 Citus 包
          • 步驟 2. 在資料庫中應用更新
      • 將 PostgreSQL 版本從 13 升級到 14
        • 對於每個節點
  • 故障排除
    • 查詢效能調優
      • 表分佈和分片
      • PostgreSQL 調優
      • 橫向擴充套件效能
      • 分散式查詢效能調優
        • 通用
          • 子查詢/CTE 網路開銷
        • 高階
          • 連線管理
          • 任務分配策略
          • 中間資料傳輸格式
          • 二進位制協議
      • 橫向擴充套件資料攝取
        • 實時插入和更新
          • 插入吞吐量
          • 更新吞吐量
          • 插入和更新:吞吐量清單
          • 插入和更新:延遲
        • 臨時暫存資料
        • 批量複製 (250K - 2M/s)
    • 有用的診斷查詢
      • 查詢哪個分片包含特定租戶的資料
      • 查詢表的分佈列
      • 檢測鎖
      • 查詢分片的大小
      • 查詢所有分散式表的大小
      • 識別未使用的索引
      • 監控客戶端連線數
      • 檢視系統查詢
        • 活動查詢
        • 為什麼查詢等待
      • 索引命中率
      • 快取命中率
    • 常見錯誤資訊
      • 無法接收查詢結果
        • 解決方法
      • 取消事務,因為它涉及分散式死鎖
        • 解決方法
      • 無法連線到伺服器:無法分配請求的地址
        • 解決方法
      • SSL 錯誤:證書驗證失敗
        • 解決方法
      • 無法連線到任何活動的放置
        • 解決方法
      • 剩餘的連線槽保留給非複製超級使用者連線
        • 解決方法
      • PgBouncer 無法連線到伺服器
        • 解決方法
      • 關係 foo 沒有被分發
        • 解決方法
      • 不支援的子句型別
        • 解決方法
      • 在事務中執行第一個修改命令後,無法開啟新連線
        • 解決方法
      • 無法建立唯一性約束
        • 解決方法
      • 函式 create_distributed_table 不存在
        • 解決方法
      • 不能使用列引用呼叫 UPDATE 查詢中使用的 STABLE 函式
        • 解決方法
  • FAQ
    • 常見問題
      • 我可以在分散式表上建立主鍵嗎?
      • 如何將節點新增到現有 Citus 叢集?
      • Citus 如何處理工作節點的故障?
      • Citus 如何處理協調節點的故障轉移?
      • Citus 是否不支援任何 PostgreSQL 功能?
      • 對資料進行雜湊分割槽時如何選擇分片數?
      • 如何更改雜湊分割槽表的分片數?
      • citus 如何支援 count(distinct) 查詢?
      • 分散式表在哪些情況下支援唯一性約束?
      • 如何在 Citus 叢集中建立資料庫角色、功能、擴充套件等?
      • 如果工作節點的地址發生變化怎麼辦?
      • 哪個分片包含特定租戶的資料?
      • 我忘記了表的分佈列,如何找到?
      • 我可以通過多個鍵分發表嗎?
      • 為什麼 pg_relation_size 報告分散式表的零位元組?
      • 為什麼我看到有關 max_intermediate_result_size 的錯誤?
      • 我可以在 Microsoft Azure 上執行 Citus 嗎?
      • 對於多租戶應用程式,我可以在 Citus 上按 schema 分片嗎?
      • cstore_fdw 如何與 Citus 一起工作?
      • pg_shard 發生了什麼?
  • 博文
    • Postgres 中使用 HyperLogLog 的高效彙總表
      • 沒有 HLL 的彙總表 — 以 GitHub 事件資料為例
      • 沒有 HLL,彙總表有一些限制
      • HLL 來拯救
      • HLL 和彙總表一起使用
      • HLL 可以回答哪些型別的查詢?
      • 一個帶有 HLL 的彙總表勝過一千個沒有 HLL 的彙總表
      • 想了解更多關於 Postgres 中的 HLL 的資訊嗎?
    • Postgres 上使用 HyperLogLog 的分散式不同計數
      • HLL 在幕後做什麼?
        • 雜湊所有的元素
        • 觀察資料中的罕見模式
        • 隨機平均
        • 更多?
      • 分散式系統中的HLL
      • 親身體驗 HLL
        • 設定
        • 例子
        • 結論
    • Citus 中的 Postgres 並行索引
    • 使用 Postgres 和 Citus 進行大規模實時事件聚合
    • PostgreSQL 和 Citus 上的分散式外連線如何工作
      • Citus 的分散式外連線
    • 使用 Postgres 設計 SaaS 資料庫以實現擴充套件
    • 使用 Citus 擴充套件構建可擴充套件的 Postgres 指標後端
      • 時間序列指標
      • 事件
    • 使用 Postgres 對多租戶應用進行分片
      • 租約
      • 多租戶和託管,完美的一對
      • 綜上所述
    • 使用半結構化資料對 Postgres 進行分片及其對效能的影響
      • 一張大表,沒有連線
      • 進入 Citus
      • 查詢工作負載
      • Every distribution has its thorns
    • 使用 PostgreSQL 和 Citus 進行可擴充套件的實時產品搜尋

官方最新手冊

http://docs.citusdata.com