首页 > 数据库 >Citus 11 官方手册脑图 - PostgreSQL 超大规模分布式数据库解决方案上手指南

Citus 11 官方手册脑图 - PostgreSQL 超大规模分布式数据库解决方案上手指南

时间:2022-11-04 08:45:23浏览次数:63  
标签:11 PostgreSQL Citus 查询 分片 table 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

 

作者: 为少

标签:11,PostgreSQL,Citus,查询,分片,table,citus,分布式
From: https://www.cnblogs.com/88223100/p/Citus-11-Official-Manual-Brain-map.html

相关文章

  • 11.3 解题报告
    T1用时:\(1\)h期望得分:\(100\)pts实际得分:\(40\)pts这题是一个比较简单的贪心,枚举根,bfs求出根到每个点的最小距离然后取\(\min\)即可,当然由于点数极小,也可以直接枚......
  • 图解教程P1-c#和.net框架-2022年11月3日
    1.net之前VB,C,C++.WIN32.API,MFC微软基础类库,com组件对象模型。2.2002发布.net第一个版本面向对象,多平台,行业标准,安全性3..net框架构成执行环境CLRcommentlan......
  • 11-SSM_Spring_IoC与DI
    目录​​一,Spring介绍​​​​1,什么是框架​​​​2,spring是什么​​​​3,Spring的优势​​​​4,Spring的体系结构​​​​4.1核心容器​​​​4.2数据访问/集成​​​​4......
  • 11-SSM_Spring_AOP
    目录​​三,Spring核心AOP​​​​1,介绍​​​​2,代理&静态代理​​​​2.1 原有方式:核心业务和服务方法都编写在一起​​​​2.2 基于类的静态代理​​​​2.3 基于接口......
  • 11-SSM_Spring_整合JDBC
    目录​​四,Spring整合JDBC​​​​1,使用spring-jdbc操作数据库​​​​1.1简单测试JdbcTemplate​​​​1.2  通过spring配置的方式实现数据源配置​​​​1.3查询​​......
  • 2022.11.3 闲话
    想不到博主更新了?[Warning]流水账警告。今天复健了某军事博弈软件(还是不要明说为好),终于直到之前学长们为什么可以研究这么深刻了/hanx不过没有研究太久,只有半个小时左......
  • c++11 unique_ptr
    unique_ptr使用详解      ......
  • 【2022.11.3】luffy项目前期部署(1)
    内容概要1.企业项目类型2.企业项目开发流程3.路飞项目需求4.pip换源5.虚拟环境搭建5.1使用pytharm创建虚拟环境5.2通用方案创建虚拟环境6.luffy后台创建目录......
  • 闲话 22.11.3
    闲话好今日得到最让人感到奇妙的一件事是松鼠加入ps_plive力虽然但是……比较地奇妙……不知道该评价什么(连步玎都不是ps_p的(所以给了一天自由练习的时间就是刷......
  • 2022-11-3学习内容
    1.在存储卡上读写图片文件1.1activity_image_write.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/an......