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

来源:https://www.cnblogs.com/88223100/archive/2022/11/04/Citus-11-Official-Manual-Brain-map.html
-Advertisement-
Play Games

CitusData於日前推出了Citus11.0,並宣佈將所有企業版的特性都進行開源。此前,Citus在版本更新時通常會同步發佈2個版本:開源版本和包含一些額外功能的企業版本。“但是,Citus11.0將只有一個版本,因為Citus擴展中的所有內容現在都是完全開源的!” 公告指出,這意味著你現在可... ...


 

 官方手冊:https://docs.citusdata.com

 

 腦圖大綱

    • 入門
      • 什麼是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
      • 查詢工作負載
      • 每個發行版都有它的刺
    • 使用 PostgreSQL 和 Citus 進行可擴展的實時產品搜索


官方手冊:https://docs.citusdata.com

 

作者: 為少

本文來自博客園,作者:古道輕風,轉載請註明原文鏈接:https://www.cnblogs.com/88223100/p/Citus-11-Official-Manual-Brain-map.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 嵌入式系統安全的一些解決方法及缺陷 外部硬體安全模塊:在主SoC之外包含一個專用的硬體安全模塊或可信元件,e.g. 手機的SIM卡。==隔離僅限於可以從非易失性存儲器運行的相對靜態程式== 內部硬體安全模塊:管理加密操作和密鑰存儲的硬體模塊;通用的處理引擎,放在主處理器旁邊,它使用自定義硬體邏輯來防 ...
  • 在進入正題之前我們先來瞭解一下sed的模式空間,如下 什麼是sed的模式空間? 答(僅供參考):就是從文件讀取一行文本然後存入的緩衝區,然後命令操作模式空間的內容,在初始狀態下模式空間是沒有內容的,在每次迴圈讀取數據的過程中,模式空間都會被清空並寫入新的內容。 解釋以下命令結果: seq 10 | ...
  • 前言 今天我們一起來看一下如何使用LabVIEW實現語義分割。 一、什麼是語義分割 圖像語義分割(semantic segmentation),從字面意思上理解就是讓電腦根據圖像的語義來進行分割,例如讓電腦在輸入下麵左圖的情況下,能夠輸出右圖。語義在語音識別中指的是語音的意思,在圖像領域,語義指 ...
  • iShowU Studio for Mac擁有一個整潔但有用的屏幕錄製界面,使用iShowU Studio Mac版,你可以輕鬆添加文本,註釋,過渡,指針和高亮,然後分享您的結果! 詳情:iShowU Studio for Mac(高清錄屏工具) 最新功能 1.改進捕獲和速度 更簡單的捕獲設置重新設 ...
  • 1.Linux環境完全卸載mysql相關文件: 完全卸載mysql相關文件: yum remove mysql mysql-server mysql-libs compat-mysql rm -rf /var/lib/mysql rm /etc/my.cnf rpm -qa|grep mysql / ...
  • 1.組名 瀟灑不是擺爛 2.組員 黃笑然 陳佳瑤 蘇國培 劉玉婷 安游珺 3.項目名 基於模板匹配的票證識別平臺 4.項目介紹 我們的項目是基於模板匹配的票證識別平臺。隨著人工智慧技術的發展,OCR技術有了重大突破,票證管理也逐漸朝著數字化的方向發展。本票證識別平臺採用OCR識別技術,結合預置模板, ...
  • 簡述 Apache Doris 是一個現代化的 MPP 分析型資料庫產品,僅需 亞秒級 響應時間即可獲得查詢結果,能有效地支持實時數據分析。 本文主要介紹如何使用 CloudCanal 快速構建一條穩定高效運行的 PostgreSQL 到 Doris 數據同步鏈路。 技術點 基於 StreamLoa ...
  • 摘要:GaussDB(for Influx)是一款基於計算存儲分離架構,完全相容 InfluxDB 生態的雲原生時序資料庫。 本文分享自華為雲社區《雲資料庫 GaussDB(for Influx) 解密第十一期:讓智能電網中時序數據處理更高效》,作者:華為雲資料庫 GaussDB(for Influ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...