创建插件
create extension datalake_fdw;
创建foreign data wrapper
CREATE FOREIGN DATA WRAPPER wrapper_name
HANDLER datalake_fdw_handler
VALIDATOR datalake_fdw_validator;
- wrapper_name: fdw的名字,可以任意取,但是下面使用时需要保持一致。
创建foreign server
CREATE SERVER server_name
FOREIGN DATA WRAPPER datalake_fdw
OPTIONS (host 'xxx', protocol 'xxx', isvirtual 'xxx',
ishttps 'xxx');
oss对象存储参数:
- server_name:服务器的名字,可以任意取,但是下面使用时需要保持一致。
- Host:对象存储服务地址,如192.168.2.1:800。
- Protocol:对象存储云平台,例如minio等。
- Isvirtual:按照 virutal-host-style 还是 path-host-style 的方式来解析对象存储的主机,true为virutal-host-style。
- Ishttps:是否使用https协议。
创建user mapping
user mapping是数据库用户与外部服务用户的映射关系。
CREATE USER MAPPING FOR db_user
SERVER minio_foreign_server
OPTIONS (user 'XXX', accesskey 'XXXXXXXXXXXXX', secretkey 'XXXXXXXXXX');
- db_user:数据库用户
- User:对象存储服务用户名(如有)。
- Accesskey:对象存储服务accesskey。
- Secretkey:对象存储服务secretkey。
创建foreign table
CREATE FOREIGN TABLE t1(a int, name text, b int)
SERVER minio_foreign_server
OPTIONS (filePath '/bucket-name/datalake/prefix', enableCache 'false', format 'csv');
- filePath:对象存储桶路径。
- enableCache:是否启用缓存。
- Format:对象存储文件格式。
访问foreign table
Xlake仅支持读操作。
例如:select * from t1;