From edfe0078c33cc128f2b2cc5c9aa112400ec94f8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=B9=E8=88=9F?= <13007110208@163.com> Date: Wed, 12 Mar 2025 16:41:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=AC=94=E8=AE=B01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Hologres/Hologres.md | 105 +++++++++++++++++++++++++++++++++++++++++++ 传奇项目/账号信息.md | 33 ++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 Hologres/Hologres.md create mode 100644 传奇项目/账号信息.md diff --git a/Hologres/Hologres.md b/Hologres/Hologres.md new file mode 100644 index 0000000..40036fa --- /dev/null +++ b/Hologres/Hologres.md @@ -0,0 +1,105 @@ +# Hologres 索引与表结构设计指南 + +## 索引剪枝策略 +### 1. 分区剪枝(Partition Pruning)[1](@ref) +- ​**作用**:通过查询条件定位目标分区,避免全表扫描 +- ​**适用场景**:日粒度分区表(如`event_time_column`字段) +- ​**注意事项**:非分区表自动跳过此过程 + +### 2. 分片剪枝(Shard Pruning) +- ​**核心参数**:`distribution_key`(分布键) +- ​**最佳实践**: + - 选择高基数字段(用户ID、订单ID等) + - JOIN表使用相同分布键实现Local Join +- ​**资源影响**:未命中分片时需全分片扫描,增加资源消耗 + +### 3. 文件剪枝(Segment Key Pruning) +- ​**依赖字段**:`event_time_column`/`segment_key` +- ​**作用**:定位节点内数据文件,减少文件扫描量 + +### 4. 聚簇剪枝(Clustering Key Pruning) +- ​**核心参数**:`clustering_key` +- ​**优势**:加速范围查询和排序操作 + +--- + +## 表结构定义示例 +### 列存表示例[3,7](@ref) +```sql +-- 复合索引配置表 +CREATE TABLE tbl_1 ( + id bigint NOT NULL, + name text NOT NULL, + age bigint NOT NULL, + class text, + reg_timestamp timestamptz NOT NULL, + PRIMARY KEY (id) +) WITH ( + orientation = 'column', + distribution_key = 'id', + clustering_key = 'age', + event_time_column = 'reg_timestamp', + bitmap_columns = 'name,class', + dictionary_encoding_columns = 'class:auto' +); + +-- 简化配置表 +CREATE TABLE public.tbl_col ( + id text NOT NULL, + name text NOT NULL, + class text NOT NULL, + in_time timestamptz NOT NULL, + PRIMARY KEY (id) +) WITH ( + orientation = 'column', + clustering_key = 'class', + bitmap_columns = 'name', + event_time_column = 'in_time' +); + +列存会默认创建更多的索引,包括对字符串类型创建bitmap索引,这些索引可以显著加速查询过滤和统计 + + +primary key 主键 +distribution_key 分布 +event_time_column 单调递增或单调递减的有序字段 +clustering_key Cluster Filter算子,表明命中了Clustering Key +dictionary_encoding_columns字典编码 +bitmap_columns 位图索引 + + + +relname:关系(表、索引等)的名字。 +relnamespace:该关系所属的命名空间(通常是模式schema的OID)。 +reltype:该关系的数据类型的OID(如果有的话;例如,对于一个复合类型)。 +reloftype:该关系的对象类型的OID(如果有的话;例如,对于一个数组类型)。 +relowner:该关系的所有者的角色ID。 +relam:如果这是一个访问方法(如索引),则为该访问方法的OID。 +relfilenode:该关系对应的文件节点号。 +reltablespace:该关系所在的空间的OID(如果没有指定,则使用默认值)。 +relpages:该关系占用的页面数(估算值)。 +reltuples:该关系中的行数(估算值)。 +relallvisible:所有可见行的数量(用于VACUUM操作)。 +reltoastrelid:如果存在,指向该关系的TOAST表的OID。 +relhasindex:布尔值,指示是否有索引。 +relisshared:布尔值,指示该关系是否跨数据库共享。 +relpersistence:持久性级别,可以是永久('p')、临时('u')、或不可持久('t')。 +relkind:关系的类型,可以是普通表('r')、索引('i')、序列('S')、视图('v')、物化视图('m')、组合类型('c')、外部表('f')、分区表('p')等。 +relnatts:该关系定义的列数。 +relchecks:该关系上的检查约束数。 +relhasoids:布尔值,指示该关系是否有OID列。 +relhasrules:布尔值,指示是否有规则。 +relhastriggers:布尔值,指示是否有触发器。 +relhassubclass:布尔值,指示是否有子类(即继承表)。 +relrowsecurity:布尔值,指示是否启用了行级安全。 +relforcerowsecurity:布尔值,指示是否强制行级安全。 +relispopulated:布尔值,指示物化视图是否已填充数据。 +relreplident:复制标识符类型,可以是 'd'(默认)、'n'(无)、'f'(完整)、或'i'(索引)。 +relispartition:布尔值,指示该关系是否是一个分区。 +relrewrite:如果存在,指向重写系统的OID。 +relfrozenxid:该关系的事务ID,当所有旧的XID都被冻结时更新。 +relminmxid:最小的多事务ID,当所有旧的MXID都过期时更新。 +relacl:该关系的访问权限列表。 +reloptions:该关系的选项列表。 +relpartbound:如果是分区表,此字段包含定义其边界条件的信息 +``` \ No newline at end of file diff --git a/传奇项目/账号信息.md b/传奇项目/账号信息.md new file mode 100644 index 0000000..0623886 --- /dev/null +++ b/传奇项目/账号信息.md @@ -0,0 +1,33 @@ +### yinzhou@1391084327849900.onaliyun.com +**服务器**: `hgprecn-cn-n8m2xw5ez001` +**日期**: 2022年7月26日 +**项目**: +- ​**ProjectId=91919**​(引擎专用) + - 模块:`engine_hg -> dhsf_engine` + - 功能:`传奇996` `传奇联运` `传奇引擎` `用户画像` + - 子模块:`sdk_advert_hg -> sdk_advert` `广告` + +--- + +### yinzhou@1253758386586182.onaliyun.com +**服务器**: `hgprecn-cn-n8m2xw5ez001` +**日期**: 2022年11月2日 +**项目**: +- ​**ProjectId=59589**​(数据中心) + - 模块:`sdk_statis` + - 功能:`反外挂` `付费` `广告` `滚服` `角色` `离线统计` `留存` `区服` `渠道` `实时统计` `事件分析` + +--- + +### 同步到 yinzhou@1173100116258632.onaliyun.com +**服务器**: `hgprecn-cn-em93ns6j0004` +**日期**: 2024年3月19日 +**项目**: +1. ​**ProjectId=125221**​(仙侠引擎) + - 模块:`dhsf_engine` + - 功能:`传奇996` `传奇联运` `传奇引擎` `用户画像` + - 子模块:`sdk_advert` `广告` + +2. ​**ProjectId=151181**​(仙侠统计分析) + - 模块:`sdk_statis` + - 功能:`反外挂` `付费` `广告` `滚服` `角色` `离线统计` `留存` `区服` `渠道` `实时统计` `事件分析` \ No newline at end of file