前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Citus 11 官方手册脑图 - PostgreSQL 超大规模分布式数据库解决方案上手指南

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

作者头像
为少
发布2022-12-07 09:13:52
4.2K0
发布2022-12-07 09:13:52
举报
文章被收录于专栏:黑客下午茶

官方手册: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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑客下午茶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档