YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
- MPP 架构
- 镜像分布策略
- 持续聚集
- 滑动窗口
- Grafana 监控指标解读
- Prometheus 监控指标解读
- 术语表
-
工具指南
- mxaddmirrors
- mxbackup
- mxbench
- mxdeletesystem
- mxgate
- mxinitstandby
- mxmoveseg
- mxpacklogs
- mxrecover
- mxrestore
- mxshift
- mxstart
- mxstate
- mxstop
- gpconfig
- pgvector
-
数据类型
-
存储引擎
-
执行引擎
-
系统配置参数
SQL 参考
- ABORT
- ALTER_DATABASE
- ALTER_EXTENSION
- ALTER_EXTERNAL_TABLE
- ALTER_FOREIGN_DATA_WRAPPER
- ALTER_FOREIGN_TABLE
- ALTER_FUNCTION
- ALTER_INDEX
- ALTER_RESOURCE_GROUP
- ALTER_RESOURCE_QUEUE
- ALTER_ROLE
- ALTER_RULE
- ALTER_SCHEMA
- ALTER_SEQUENCE
- ALTER_SERVER
- ALTER_TABLE
- ALTER_TABLESPACE
- ALTER_TYPE
- ALTER_USER_MAPPING
- ALTER_VIEW
- ANALYZE
- BEGIN
- CHECKPOINT
- COMMIT
- COPY
- CREATE_DATABASE
- CREATE_EXTENSION
- CREATE_EXTERNAL_TABLE
- CREATE_FOREIGN_DATA_WRAPPER
- CREATE_FOREIGN_TABLE
- CREATE_FUNCTION
- CREATE_INDEX
- CREATE_RESOURCE_GROUP
- CREATE_RESOURCE_QUEUE
- CREATE_ROLE
- CREATE_RULE
- CREATE_SCHEMA
- CREATE_SEGMENT_SET
- CREATE_SEQUENCE
- CREATE_SERVER
- CREATE_TABLE
- CREATE_TABLE_AS
- CREATE_TABLESPACE
- CREATE_TYPE
- CREATE_USER_MAPPING
- CREATE_VIEW
- DELETE
- DROP_DATABASE
- DROP_EXTENSION
- DROP_EXTERNAL_TABLE
- DROP_FOREIGN_DATA_WRAPPER
- DROP_FOREIGN_TABLE
- DROP_FUNCTION
- DROP_INDEX
- DROP_RESOURCE_GROUP
- DROP_RESOURCE_QUEUE
- DROP_ROLE
- DROP_RULE
- DROP_SCHEMA
- DROP_SEGMENT_SET
- DROP_SEQUENCE
- DROP_SERVER
- DROP_TABLE
- DROP_TABLESPACE
- DROP_TYPE
- DROP_USER_MAPPING
- DROP_VIEW
- END
- EXPLAIN
- GRANT
- INSERT
- LOAD
- LOCK
- REINDEX
- RELEASE_SAVEPOINT
- RESET
- REVOKE
- ROLLBACK_TO_SAVEPOINT
- ROLLBACK
- SAVEPOINT
- SELECT INTO
- SET ROLE
- SET TRANSACTION
- SET
- SHOW
- START TRANSACTION
- TRUNCATE
- UPDATE
- VACUUM
常见问题(FAQ)
PXF 访问 S3
本文档介绍了 PXF 访问 S3 的方式,并给出示例。
Platform Extension Framework(PXF)使用 Foreign Data Wrapper(FDW)的机制访问存储在 YMatrix 数据库外部源中的数据。有关 PXF 的详细介绍可以参考 PXF 中文文档。
1 步骤
1.1 配置 PXF 服务
在 Master 上,使用 mxadmin 用户编辑 PXF 访问 S3 服务的配置文件 s3-site.xml
,路径为 /usr/local/pxfconf/servers/s3server_online/s3-site.xml
。
$ vim /usr/local/pxfconf/servers/s3server_online/s3-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property>
<name>fs.s3a.endpoint</name>
<value>http:xxx</value>
</property>
<property>
<name>fs.s3a.access.key</name>
<value>xxx</value>
</property>
<property>
<name>fs.s3a.secret.key</name>
<value>xxx</value>
</property>
<property>
<name>fs.s3a.fast.upload</name>
<value>true</value>
</property>
</configuration>
参数说明:
- fs.s3a.endpoint :对象存储的 endpoint,私有部署的情况下为 http://<IP>:<port>。如果是公有云,那么需要指定网络可以连通的域名。
- fs.s3a.access.key:访问对象存储的 access_key。
- fs.s3a.secret.key:访问对象存储的 secret_key。
1.2 将文件同步到所有节点并重启 PXF
注意!
此部分步骤均需在 Master 上使用 mxadmin 用户执行。
同步 PXF 配置文件到集群所有节点上。
$ pxf cluster sync
如下,说明 PXF 配置文件已经同步成功。
Syncing PXF configuration files from master host to 2 segment hosts...
PXF configs synced successfully on 2 out of 2 hosts
注意!
需要查看其它节点对应目录,检查其配置文件是否同步成功。
重启 PXF 服务。
$ pxf cluster restart
如下,说明 PXF 重启成功。
Restarting PXF on 2 segment hosts...
PXF restarted successfully on 2 out of 2 hosts
PXF 实例需要单独重新启动。
$ pxf restart
如下,说明 PXF 实例重启成功。
Using CATALINA_BASE: /usr/local/pxf-matrixdb4/pxf-service
Using CATALINA_HOME: /usr/local/pxf-matrixdb4/pxf-service
Using CATALINA_TMPDIR: /usr/local/pxf-matrixdb4/pxf-service/temp
Using JRE_HOME: /usr/local/jdk1805/jre
Using CLASSPATH: /usr/local/pxf-matrixdb4/pxf-service/bin/bootstrap.jar:/usr/local/pxf-matrixdb4/pxf-service/bin/tomcat-juli.jar
Using CATALINA_PID: /usr/local/pxf-matrixdb4/run/catalina.pid
Tomcat stopped.
Using CATALINA_BASE: /usr/local/pxf-matrixdb4/pxf-service
Using CATALINA_HOME: /usr/local/pxf-matrixdb4/pxf-service
Using CATALINA_TMPDIR: /usr/local/pxf-matrixdb4/pxf-service/temp
Using JRE_HOME: /usr/local/jdk1805/jre
Using CLASSPATH: /usr/local/pxf-matrixdb4/pxf-service/bin/bootstrap.jar:/usr/local/pxf-matrixdb4/pxf-service/bin/tomcat-juli.jar
Using CATALINA_PID: /usr/local/pxf-matrixdb4/run/catalina.pid
Tomcat started.
Checking if tomcat is up and running...
Server: PXF Server
Checking if PXF webapp is up and running...
PXF webapp is listening on port 5888
1.3 创建测试表
在 Master 上使用 mxadmin 用户连接 psql 客户端进入数据库。
$ psql <databasename>
创建 pxf_fdw
扩展。
注意!
YMatrix 创建扩展需要用户具有超级用户权限。
=# CREATE EXTENSION pxf_fdw;
在此给出两种创建方式,任选其一即可。
- 超级用户创建 S3 服务
config
需要和上文创建的文件夹s3server_online
相对应。=# CREATE SERVER s3server_online FOREIGN DATA WRAPPER s3_pxf_fdw OPTIONS(config 's3server_online');
- 普通用户创建 S3 服务
若想使用普通用户创建 S3 服务需要给普通用户添加以下权限。
注意!
执行 GRANT 命令需要用户具有超级用户权限。
=# GRANT usage ON FOREIGN DATA WRAPPER s3_pxf_fdw TO <role_name>;
config
需要和上文创建的文件夹 s3server_online
相对应。
=# CREATE SERVER s3server_online FOREIGN DATA WRAPPER s3_pxf_fdw OPTIONS(config 's3server_online');
创建用户映射。
=# CREATE USER MAPPING FOR mxadmin server s3server_online;
创建外部表。
=# CREATE FOREIGN TABLE public.test (
c1 jsonb,
c2 text,
c3 text,
c4 text,
c5 text,
c6 jsonb,
c7 jsonb
)
SERVER s3server_online
OPTIONS (
format 'csv',
resource '/<bucket_name>/<prefix>/<filename.csv>',
JSONIFY_ARRAY 'TRUE',
JSONIFY_MAP 'TRUE',
JSONIFY_RECORD 'TRUE'
);
参数说明:
- format:对象存储上面存储的文件格式,支持的文件格式有
CSV
、TXT
、Parquet
、ORC
、Avro
等。 - resource:文件在 S3 上的存储的绝对路径。