- 博客(673)
- 资源 (16)
- 收藏
- 关注
原创 博通(Broadcom)官网Greenplum下载方式及文档连接
然而从2008年Greenplum进入到国内后,就受到了国内的众多忠实用户群体,同时也培养了国的智能数仓管理和数据分析领域培养了众多的专业人才,这些人才也为国内的各种产业发展贡献了关键力量。同时Greenplum作为一款高性能开源的并行数据仓库解决方案,其独特的分布式架构和强大的数据分析能力,也吸引了众多企业和学术机构的关注,促进了中国在数据科学领域的教育和培训。如果需要下载最新的GP软件作为测试使用,但最好还是按照博通(Broadcom)的流程注册会员,在注册时最好使用google的邮箱。
2024-07-31 00:09:14
3676
9
原创 Greenplum的诞生与成长过程
Greenplum于2003年在美国硅谷成立,在2006年发布了基于PostgreSQL(8.x)的MPP数据库产品,作为与公司同名的MPP数据库,专为分析和管理海量数据集而设计,支持复杂的数据分析和商业智能应用,支撑数据仓库、BI业务等业务。在2008年Greenplum发布了其数据仓库产品,并且同一年推出了GreenplumMapReduce。
2024-07-27 17:01:58
1151
原创 超融合时序数据库YMatrixDB与PostGIS案例
YMatrix适用于各种规模设备的数据融合与物联网时序应用场景,本案例以具体的案例来说明YMatrix在PostGIS中的数据加载、处理和分析的能力以及时空数据的具体使用方法。
2022-12-02 16:49:54
1331
原创 Postgres为什么要保持索引精简
Postgres索引维护要点 Postgres中过多的索引会带来多方面的影响: 写入性能下降:每个INSERT/UPDATE操作都需要更新所有索引 查询规划开销增加:优化器需要评估更多索引路径 资源浪费:占用额外磁盘空间和缓冲池 维护负担加重:增加自动清理工作量和WAL生成 优化建议: 定期识别并删除未使用或冗余的索引 监控索引膨胀情况,必要时重建 合理设置fillfactor以优化HOT更新 关注部分索引的潜在存储优化 通过精简索引集,可显著提升数据库整体性能和资源利用率。
2025-11-13 08:04:20
1005
原创 可见性映射(Visibility Map)的理解
PostgreSQL可见性映射(VM)与空闲空间映射(FSM)机制解析 PostgreSQL使用两种辅助结构管理表数据:可见性映射(VM)和空闲空间映射(FSM)。VM采用比特位标记机制,跟踪被MVCC机制隐藏的dead tuple,文件以_vm后缀命名。通过pg_visibility插件可查看各数据块的可见性状态(all_visible)和冻结状态(all_frozen)。FSM则记录数据块的空闲空间信息,使用层级索引优化插入性能。实验表明,仅当执行VACUUM后才会生成这两个文件,且通过pg_frees
2025-10-27 20:18:24
378
原创 PostgreSQL 空闲空间映射(FSM)深度解读
PostgreSQL的空闲空间映射(FSM)是管理数据块空闲空间的关键机制。FSM文件记录每个8KB数据块的空闲空间量,使用1字节(0-255)表示空间状态,采用三层二叉树结构(High Level)高效管理。当执行插入时,FSM能快速定位合适空间块;更新或删除时跟踪释放空间供复用。通过vacuum触发FSM更新,减少磁盘碎片。案例演示了创建表后FSM文件的生成过程、使用pg_freespacemap查看块使用情况,以及pgstattuple分析表空间细节。FSM优化了存储利用率,提升插入效率并减少IO操作
2025-10-27 20:02:41
805
原创 第20节-触发器-Triggers
摘要:本教程介绍了PostgreSQL触发器的概念及应用。触发器是在表或视图上发生INSERT、UPDATE、DELETE或TRUNCATE事件时自动执行的用户定义函数,常用于日志记录、审计和业务规则验证。触发器包含四个关键组件:触发事件、触发时间(BEFORE/AFTER)、触发函数(可访问特殊变量如TG_OP、NEW和OLD)和触发范围(行级/语句级)。通过示例演示了如何创建触发器来记录产品安全库存变动:首先创建日志表,然后定义触发器函数,最后绑定触发器到表上。当更新产品安全库存时,触发器会自动记录变更
2025-10-24 08:11:17
655
原创 第20节-触发器-Event-Triggers
本教程介绍了PostgreSQL事件触发器的使用。事件触发器是数据库级触发器,用于监控和控制DDL操作(如创建、修改表等),而不同于常规的表级触发器。文章详细讲解了如何创建事件触发器(CREATE EVENT TRIGGER),列出了四种可监控的事件类型(ddl_command_start、ddl_command_end等),并提供了实用场景(审计、策略执行等)。通过示例演示了创建日志表、编写触发器函数、启用禁用触发器等操作,还展示了如何限制非管理员执行DDL命令。最后总结了事件触发器的管理语句(ALTER
2025-10-24 08:10:40
646
原创 第20节-触发器-Drop-Trigger
本文介绍了PostgreSQL中DROP TRIGGER语句的使用方法。首先概述了语法结构,包括可选参数IF EXISTS、表名指定和级联选项。然后通过实例演示:创建一个防止库存为负的触发器函数prevent_negative_stock(),将其绑定到inventories表作为inventory_stock_check触发器,最后用DROP TRIGGER删除该触发器。该语句能有效管理数据库中的触发器对象。
2025-10-23 08:10:46
551
原创 第20节-触发器-Disabling-Triggers
摘要:本教程介绍了PostgreSQL中禁用和启用触发器的操作。通过ALTER TABLE DISABLE TRIGGER语句可禁用指定或所有触发器,适用于批量操作等场景。示例演示了创建价格变更日志触发器后,如何禁用触发器阻止日志记录,以及使用ENABLE TRIGGER重新激活触发器。关键语法包括指定表名和触发器名(或ALL关键字),帮助优化数据库性能并灵活控制触发器行为。
2025-10-23 08:10:15
440
原创 第20节-触发器-BEFORE-INSERT-Trigger
摘要:本教程介绍PostgreSQL的BEFORE INSERT触发器,用于在数据插入前自动执行验证函数。触发器通过NEW变量访问待插入行数据,可创建验证逻辑(如库存检查)。示例演示了创建触发器函数验证库存交易,防止负库存。当交易数量超过库存时触发器会抛出异常,有效保障数据完整性。触发器创建包含两个步骤:定义触发器函数和将函数绑定到表的插入操作。这种机制为数据操作提供了可靠的预处理能力。
2025-10-22 07:58:34
329
原创 第20节-触发器-AFTER-INSERT-Trigger
摘要:本教程介绍了PostgreSQL中AFTER INSERT触发器的使用方法。触发器会在表执行插入操作后自动调用指定函数。通过NEW变量可访问插入的行数据。创建步骤包括:1) 定义触发器函数,2) 使用CREATE TRIGGER绑定触发器。示例演示了如何通过触发器自动更新库存表:当transactions表插入新记录时,触发器会同步调整inventories表的库存数量,处理缺货时自动创建新记录或报错。这种机制能有效维护数据一致性,适用于需要自动处理业务逻辑的场景。
2025-10-22 07:57:58
661
原创 第19节-非规范化数据类型-XML
摘要:本教程介绍PostgreSQL的XML数据类型,用于存储格式正确的XML文档。通过创建xproducts表示范,展示了如何定义XML列、插入XML数据(使用XMLPARSE函数)以及使用xpath函数查询XML内容。教程还演示了将XML值转换为TEXT、DECIMAL等数据类型的方法,并提供了创建函数索引优化XML查询性能的实践方案。PostgreSQL的XML类型相比TEXT类型具有类型安全和内置函数支持的优势,适合需要处理XML数据的应用场景。
2025-10-21 07:47:33
704
原创 第19节-非规范化数据类型-JSON
摘要:本教程介绍了PostgreSQL中的JSON数据类型,重点讲解JSONB的用法。内容包括JSON基本结构(对象、数组)和数据类型,对比了JSON与JSONB的存储差异及适用场景。通过创建手机产品表的实例,演示了如何插入和查询JSON数据,包括使用->、->>运算符提取对象值和文本。教程强调JSONB更适合高效查询和存储,推荐在大多数场景中使用。
2025-10-21 07:47:00
610
原创 第19节-非规范化数据类型-Enum
PostgreSQL枚举数据类型使用指南 本教程介绍了PostgreSQL枚举数据类型的创建和应用。通过CREATE TYPE语句可定义枚举类型,用于限制列值的可选范围。示例展示了如何创建优先级枚举类型(low/medium/high),建立关联表并执行查询操作。文章还涵盖枚举值的添加(ALTER TYPE)、查询(ENUM_RANGE)和重命名方法,最后对比了枚举与使用外键关联查找表的实现方式,分析了两者在维护性和查询性能上的差异。
2025-10-20 22:50:04
573
原创 第19节-非规范化数据类型-Drop-Type
摘要:本教程介绍PostgreSQL中DROP TYPE语句的用法,用于删除用户定义的数据类型。语法支持IF EXISTS避免错误,CASCADE可级联删除依赖对象(如表列),默认RESTRICT会阻止删除有依赖项的类型。通过创建contact和address类型并演示删除过程(包括处理依赖表列的场景),说明实际应用方法。关键提示:使用CASCADE前需谨慎评估,重要数据应提前备份。
2025-10-20 22:49:07
324
原创 第19节-非规范化数据类型-Composite-types
摘要:本文介绍了PostgreSQL复合类型的使用方法。复合类型允许将行或记录结构作为数据类型使用,支持创建表列、函数参数和返回类型。通过CREATE TYPE定义复合类型后,可使用ROW()构造复合值,并通过点表示法访问字段。文章详细说明了复合类型的插入、查询、更新和删除操作,并指出复合类型不支持直接字段约束,但可通过创建域类型间接实现。示例展示了仓库位置管理场景中复合类型的应用,包括如何添加字段级约束。
2025-10-17 08:10:44
1249
原创 第19节-非规范化数据类型-Cast
摘要:本教程介绍了PostgreSQL中的数据类型转换方法,包括使用CAST()函数和::运算符将字符串、数字、布尔值、日期、数组等转换为目标类型。通过示例展示了各种常见转换场景(如字符串转整数、时间戳转日期等),并特别说明了隐式转换和自定义转换的实现方式。文章还演示了如何结合正则表达式处理表数据,以及处理XML片段时的多重转换技巧。最后简要提及了PostgreSQL的隐式转换功能和自定义类型转换的创建方法。
2025-10-17 08:10:07
1061
原创 第19节-非规范化数据类型-Array
摘要:本教程介绍了PostgreSQL数组类型的使用方法,包括定义数组列(如INT[]、TEXT[]),通过ARRAY构造函数或大括号{}插入数据,查询和修改数组元素(基于1的索引),使用ANY运算符搜索数组,以及UNNEST、ARRAY_LENGTH、ARRAY_APPEND等函数操作。还提到可通过GIN索引优化查询性能,并建议对频繁查询的数据考虑使用关系表替代数组。适用于存储小规模同类型数据集合(如产品特征、标签等)。
2025-10-16 08:23:21
417
原创 第18节-索引-Unique-index
摘要:本教程介绍了PostgreSQL唯一索引的用法,用于确保表中一列或多列值的唯一性。通过CREATE UNIQUE INDEX语句创建索引后,重复值插入会报错。教程演示了单列和多列索引的创建,比较了唯一索引与主键、唯一约束的区别:主键不允许NULL且每表只能有一个,而唯一索引允许NULL(默认);唯一约束是逻辑规则,PostgreSQL自动为其创建唯一索引。
2025-10-16 08:22:41
434
原创 第18节-索引-Unique-index
摘要:本教程介绍了PostgreSQL唯一索引的用法,用于确保表中一列或多列值的唯一性。通过CREATE UNIQUE INDEX语句创建索引,可防止重复值插入。文章演示了单列(如email)和多列(phone+extension)索引的创建与验证,对比了唯一索引与主键、唯一约束的区别。主键不允许NULL而唯一索引允许(默认NULLS DISTINCT),唯一约束是逻辑规则而唯一索引是物理实现。唯一索引是维护数据完整性的有效工具。
2025-10-15 08:18:13
432
原创 第18节-索引-Partial-Indexes
摘要:PostgreSQL分部索引通过仅对满足特定条件的行创建索引来优化查询性能。教程演示了如何创建部分索引(使用WHERE子句限定条件),并通过产品表示例说明其优势:索引更小、扫描更快、写入开销更低。典型应用场景包括查询频繁访问特定数据子集(如活跃产品)的情况。测试显示查询匹配条件时会自动使用分部索引,否则执行全表扫描。这种索引特别适合大型表中经常查询的特定数据子集。
2025-10-15 08:17:37
429
原创 第18节-索引-Index
摘要:本教程介绍了如何使用PostgreSQL索引提升查询性能。首先展示如何通过psql连接数据库并定位数据存储目录,解释表数据以堆文件形式存储。当查询条件复杂时,全表扫描效率低下,此时可通过创建索引加速查找。索引通过B树结构组织数据,优化查询路径。文章详细演示了创建索引的步骤,并建议使用EXPLAIN ANALYZE分析查询执行计划。最后提到当数据量较小时可能仍采用全表扫描,并通过生成虚拟数据的方法进行性能测试。
2025-10-15 08:16:57
1104
原创 第18节-索引-Index-only-Scans
摘要:本教程介绍了PostgreSQL中仅索引扫描(index-only scan)的优化技术。当索引包含查询所需的所有列且行可见性满足条件时,PostgreSQL可以直接从索引获取数据而无需访问表。通过products表示例,演示了创建索引、检查可见性映射(relallvisible为0表示需访问表),以及使用VACUUM ANALYZE提高可见性(relallvisible变为7)的过程。
2025-10-14 08:18:39
1041
原创 第18节-索引-Expression-Index
摘要:PostgreSQL 表达式索引允许基于表达式结果而非列值创建索引,提升查询性能。教程演示了如何通过 CREATE INDEX 语法创建表达式索引,包括使用函数(如 LOWER())和数学表达式(如 price * safety_stock)的案例。表达式索引适用于大小写搜索、JSON/数组数据处理等场景,通过 EXPLAIN 验证索引使用情况。关键点:将表达式用括号包裹,适用于频繁计算的查询条件优化。
2025-10-14 08:18:00
428
原创 第18节-索引-DROP-INDEX
摘要:本教程介绍了如何使用 PostgreSQL DROP INDEX 语句删除索引。该语句支持 CONCURRENTLY(非阻塞删除)、IF EXISTS(避免不存在索引报错)以及级联选项。基本语法为 DROP INDEX [选项] 索引名,示例演示了创建并删除 products 表索引的过程。通过该语句可有效管理数据库索引结构。
2025-10-13 08:07:06
526
原创 第18节-索引-CREATE-INDEX
摘要:本教程介绍了PostgreSQL中CREATE INDEX语句的使用方法,帮助用户为表列创建索引以提高查询性能。基本语法包括可选的索引名、IF NOT EXISTS选项、表名和索引列。PostgreSQL会自动生成索引名(格式:表名_列名_idx)。示例演示了为单列(transactions.type)和组合列(products.safety_stock,gross_weight)创建索引的过程,并展示了如何通过系统表pg_indexes查看已建索引。该语句是优化数据库查询的重要工具。
2025-10-13 08:06:28
762
原创 第17节-存储过程-Drop-procedure
本教程介绍了如何使用PostgreSQL的DROP PROCEDURE语句删除存储过程。内容包括:语法说明(含IF EXISTS、参数列表、CASCADE/RESTRICT选项)、多过程删除方法,以及通过创建/删除示例存储过程(add_brand、increase_inventory、receive_product)演示具体操作。重点指出PostgreSQL不跟踪过程间依赖关系,删除被调用的过程会导致调用过程执行失败。摘要总结了删除存储过程的核心要点和注意事项。
2025-10-12 09:14:22
422
原创 第17节-存储过程-Create-stored-procedures
本教程介绍了PostgreSQL中CREATE PROCEDURE语句的使用方法。存储过程是预编译SQL语句集,通过CREATE OR REPLACE PROCEDURE语法定义,支持参数传递和多种语言(如SQL、PL/pgSQL)。教程展示了基本存储过程创建示例update_safety_stock,以及执行多语句的update_inventory过程,后者通过BEGIN ATOMIC块确保事务原子性。最后说明了使用CALL语句调用存储过程的方法,并通过事务和库存表验证了操作结果。存储过程能有效封装业务逻
2025-10-12 09:13:37
256
原创 第16节-用户定义函数-Drop-functions
本文介绍了PostgreSQL中DROP FUNCTION语句的用法,用于删除用户定义的函数。文章详细说明了语法结构,包括IF EXISTS和CASCADE选项的使用,并通过创建多个函数演示删除操作。重点讲解了如何删除重载函数和一次性删除多个函数的方法。该语句是管理数据库函数的重要工具,但需注意函数依赖关系以避免意外删除。
2025-10-11 08:13:26
375
原创 第16节-用户定义函数-Create-functions
摘要:本教程介绍了如何使用PostgreSQL的CREATE FUNCTION语句创建自定义函数。函数可封装复杂逻辑,支持参数传递和返回值定义。基本语法包括函数名、参数、返回类型、函数体(用$$标记)和语言类型(如SQL)。示例展示了三种函数:不返回值的(VOID)、返回单值的(如计算库存总金额)以及返回复合类型(自定义结构)的函数。调用时使用SELECT语句,复合类型结果可通过FROM子句展开字段。用户定义函数增强了代码复用性和数据库功能扩展性。
2025-10-11 08:12:56
317
原创 PostgresWAL文件和序列号
摘要 PostgreSQL的预写日志(WAL)是关键组件,支持时间点恢复、流复制等功能。WAL文件命名遵循TTTTTTTTXXXXXXXXYYYYYYYYY格式,包含时间线和LSN(日志序列号)信息。LSN是一个64位整数,分为高32位和低32位,表示为XXXXXXXX/YYZZZZZZ的十六进制格式。通过pg_walfile_name函数可将LSN转换为对应的WAL文件名。本文演示了如何通过SQL命令获取当前WAL位置、计算WAL生成量,并使用pg_switch_wal进行日志切换。
2025-10-10 20:49:28
1010
原创 第15节-高级文本搜索-SIMILAR-TO
本教程介绍了PostgreSQL中SIMILAR TO运算符的使用方法,该运算符用于匹配符合正则表达式的字符串。SIMILAR TO要求整个字符串与模式完全匹配,支持_和%通配符,但不将.视为元字符。教程演示了包括正则表达式解析、NOT SIMILAR TO反向匹配以及使用ESCAPE转义特殊字符的示例。通过商品表实例,展示了如何查询包含特定关键词(如"Galaxy"或"iPhone")或排除数字结尾的产品名称。
2025-10-10 07:53:55
516
原创 第15节-高级文本搜索-Regular-Expressions
摘要:本教程介绍了如何在PostgreSQL中使用POSIX正则表达式进行文本匹配。内容涵盖字符类(\d,\s,\w等)、锚点(^,$)、量词(,+,?等)、集合范围([],-)和交替(|)等基本语法。PostgreSQL提供~(匹配)、~(不区分大小写匹配)、!~(不匹配)和!~*(不区分大小写不匹配)四种运算符。通过products表示例展示了如何匹配数字模式、特定位置字符、多选分支以及查找不匹配项。PostgreSQL不支持PCRE标准,但POSIX正则表达式已能满足多数文本处理需求。
2025-10-10 07:53:12
414
原创 第15节-高级文本搜索-LIKE
摘要:PostgreSQL 的 LIKE 运算符支持在列中搜索特定模式,可使用通配符 %(多个字符)和 _(单个字符)。示例包括查找以"Samsung"开头、以"5"结尾或包含"Pro"的产品名称。ILIKE 运算符支持不区分大小写的搜索,而 NOT 可否定 LIKE 结果。此外,还介绍了使用转义字符处理特殊字符(如100%),以及结合 CASE 表达式对结果进行分组的方法。
2025-10-09 08:04:24
627
原创 第15节-高级文本搜索-Full-text-search
PostgreSQL全文搜索教程摘要:本文介绍了PostgreSQL的全文搜索功能,包括tsvector和tsquery两种专用数据类型。tsvector存储规范化词位并支持位置信息和权重标记,tsquery支持布尔运算符、短语搜索和分组。通过匹配运算符(@@)实现文本匹配,并提供创建GIN索引优化搜索性能的示例。教程包含基础搜索、AND/OR/NOT运算符应用及短语搜索等实用案例,帮助用户高效实现复杂文本查询功能。
2025-10-09 08:03:39
1187
原创 第14节-增强表结构-Sequence
摘要:本文介绍了PostgreSQL序列的使用方法。序列是用于生成唯一整数的数据库对象,通过CREATE SEQUENCE语句创建,可自定义起始值、步长、循环等属性。PostgreSQL提供nextval()、currval()等函数操作序列值,并支持将序列与表列关联实现自动编号。文章演示了升序/降序序列的创建、与表列的绑定以及序列删除操作,最后介绍了查看所有序列的方法。序列是PostgreSQL中实现自增主键和唯一标识的高效工具。
2025-10-08 08:27:22
1058
原创 第14节-增强表结构-Renaming-tables
摘要:本文介绍了在PostgreSQL中使用ALTER TABLE RENAME TO语句重命名表的方法。语法为ALTER TABLE table_name RENAME TO new_table,可使用IF EXISTS避免表不存在的错误。重命名会自动更新依赖对象(如视图、外键)。示例演示了创建表、重命名表及验证过程。该语句是修改表名的标准方式。
2025-10-08 08:26:33
616
原创 第14节-增强表结构-Renaming-columns
摘要:本文介绍了PostgreSQL中重命名表列的ALTER TABLE RENAME COLUMN语句用法。内容包括基本语法、重命名视图引用列的实现方法,以及通过自定义函数实现"如果存在则重命名"的功能。文章通过创建示例表sales_returns和视图sales_return_reports,演示了重命名列的实际操作步骤和验证方法,同时指出PostgreSQL会自动更新依赖对象中的列名,但需要手动更新应用代码。
2025-10-06 09:40:11
489
greenplum-db-7.1.0-el8-x86-64和greenplum-db-7.2.0-el9-x86-64下载
2024-07-24
Greenplum释放AO表SHELL脚本
2018-10-17
Greenplum不同集群之间同步数据方法及性能.pdf
2019-06-14
spark HTML查看文档
2017-02-26
Greenplum数据库使用总结
2019-01-02
Greenplum数据库巡检报告.pdf
2019-06-14
小徐的《BigData总结》
2018-08-13
Myeclipse10破解工具
2017-04-10
cronhub调度器需要的数据库
2018-04-18
CDH安装word
2017-02-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅