在linux/windows下使用C语言扩展模块实现自己的UDF

在linux/windows下使用C语言扩展模块实现自己的UDF
Linux下可以这么做 Linux下用C扩展一个UDF,至少需要写4个文件: xxxx.h 里面是C函数代码,会编译成.so文件 xxxx.sql 里面是SQL代码,会告诉数据库这个UDF调用哪个.so文件的哪个函数 Makefile 告诉PG编译环境,这是哪个模块,这里面SQL叫啥,C代码叫啥,安装时会放在哪儿 ReadMe 把#1~#3贴进去,作为文档 Windows下可以这么做 使用C编写的动态链接库为PostgreSQL数据库添加自定义函数 在这点上,PostgreSQL...

gpdiff

gpdiff
GPDB 的测试框架延续了 PostgreSQL 测试的核心思路,即提供一个 SQL 文件,运行它,并将结果和预期的结果对比,如果一样,则通过,否则失败。 然而实际的 SQL 结果输出包含很多对验证结果无关紧要的东西,譬如某些提示用信息。GPDB 提供了 gpdiff.pl 脚本来帮助测试程序忽略掉某些无关紧要的字符。 gpdiff.pl gpdiff.pl 对文件和目录进行预处理,然后对预处理后的文件进行 diff 操作。 预处理由 atmsort.pm...

GPDB: 编译 gpfdist 文件服务器

GPDB: 编译 gpfdist 文件服务器
GDB: compile gpfdist file server GPDB: 编译 gpfdist 文件服务器 gpfdist 是 GPDB 自带的一个并行文件服务器,可以实现 GPDB 高速数据加载和导出。默认不会编译。下面介绍下怎么 编译这个工具: $ sudo yum install apr-devel libevent-devel libyaml-devel // prefix 需要和 GPDB 的安装路径相同。 $ ./configure --prefix=/home/gpadmin/gpdb/gpdb.master/ $ make && make install

GPDB: 外部表分区

GPDB: 外部表分区
GPDB 外部表分区 GPDB 具有灵活的分区支持能力,可以按照list或者range等进行分区。 从 GPDB 4.3.6 之后,分区还可以是外部表。这样数据可以根据访问模式 存储在不同的系统和介质中,而且可以通过数据库进行统一访问和管理。 下面演示下怎么使用外部分区表。 首先创建一个分区表,并初始化一些数据 CREATE TABLE sales (id int, year int) DISTRIBUTED BY (id) PARTITION BY RANGE (year) ( PARTITION ...

GPDB: 使用外部表实现跨数据库数据读写

GPDB: 使用外部表实现跨数据库数据读写
使用 GPDB 如何实现跨数据库数据访问? 同事 Presser Marshall 分享了一个使用 WEB EXTERNAL TABLE 实现跨库数据读写的方法: CREATE EXTERNAL WEB TABLE faa.d_airports_ext (like faa.d_airports) EXECUTE 'psql -At -d extra -U gpadmin -c "select * from faa_extra.d_airports"' ON MASTER FORMAT 'TEXT' (DELIMITER '|' NULL E'\N'); 写数据使用 WRITABLE 外部表即可。 这种方式可以正常工作,如果有...

LOCK memo 2

LOCK memo 2
=> LOCKTAG uniquely identifies a resource to be locked; ==> LOCK structure descripts the live locking situation of a target resource, that is to say, which processes acquired the lock on this target resource, and which processes are waiting for the lock on this target resource; –> LOCKTAG tag –> LOCKMASK grantMask: all the lock modes that have been granted on thi...

LOCK memo-1

LOCK memo-1
LockMethodData can be compared as electronic lock or traditional lock, it specifies: the meaning of each lock mode, that is to say, which lock mode conflicts with other lock modes; whether this kind of lock is transactional, that is to say, whether released at transaction end; 3 important fields of this structure: * numLockModes * transactional * conflictTab: this is an arra...

gpcheckperf

gpcheckperf
1. gpcheckperf 简介 GPDB 提供了一个工具检查系统的硬件性能,这个工具名字叫 gpcheckperf。 它支持以下性能测试: 网络性能 (gpnetbench*) 磁盘 IO (dd 测试) 内存带宽 (stream 测试) 使用 gpcheckperf 之前需要使用 gpssh-exkeys 设置无密码 ssh 访问所有待测试机器。 1.1 用法 // 测试网络性能 gpcheckperf -d temp_directory {-f hostfile_gpchecknet | - h hostname [-h hostname ...]} ...

TPCH 介绍

TPCH 介绍
介绍 TPC-H 是一个决策支持(Decision Support)性能测试规范。它包括一组面向业务的 ad-hoc 查询和并发数据修改套件。这个规范描述了DS系统基本的 要求: 处理大量数据 执行复杂查询 回答关键业务问题 TPC-H通过执行一组查询来评估一个 DS 系统的性能: 回答真实业务问题 模拟 ad-hoc 查询(例如使用网页点击查询,譬如查看一个商品的库存) 比大多数的 OLTP 事务负责的多 查询包含大量的操作符和约束 生...

如何构建高效的 GPDB 集群

如何构建高效的 GPDB 集群
GPDB 具有非常灵活的适应性,可以运行在 EMC/Pivotal 的一体机上,可以运行在客户自己的硬件系统上,可以运行在虚拟环境中,也可以运行在云上例如AWS。 然而要最大限度的发挥 GPDB 的优势,需要对系统的配置和环境进行优化。 Pivotal的资深系统工程师在下面的blog中对之进行了介绍。 详情请见Pivotal工程师blog