《FDW原理与应用-数据库管理、开发实践专场(44页).pdf》由会员分享,可在线阅读,更多相关《FDW原理与应用-数据库管理、开发实践专场(44页).pdf(44页珍藏版)》请在三个皮匠报告上搜索。
1、冯若航探探 PostgreSQL DBA FDW 意义 FDW 前生今世 FDW 走马观花 FDW 实例:file_fdw FDW 实例:postgres_fdw FDW 工作原理 FDW 如何编写大纲FDW 的意义的意义各种强大的数据组件层出不穷应用成为各种数据系统间的搬运工应对各种异构的接口用于构建数据系统的工具正在变得越来越好,但还缺少一个重要的组件:与Unix shell类似的数据库集成设施。即一种声明式的,简单的,用于组装数据系统的高级语言,数据库世界的巴别塔INSERT INTO redis.daily_summary SELECT*FROM pgsql.metadata mt J
2、OIN mysql.realtime_counters USING(id)JOIN mongo.history_counters USING(id)PostgreSQL FDW提供了组装这类数据系统的基础设施,是一项很有趣的技术postgresql|elasticsearch自动创建pgsql中表的全文索引?SQL更像是数据系统世界的“世界通用语”FDW 愿景展望愿景展望ONE DATABASE RULE THEM ALL!FDWFDW 愿景展望愿景展望Federation Database/PolystoreAWS AthenaPrestoFDW 前生今世前生今世SQL/MED:Manage
3、ment of External Data 实现者寥寥无几实现者寥寥无几SQL Standard ISO/IEC 9075-9:2008PostgreSQLIBM DB2MariaDBFDW 基本模型基本模型FDW 前生今世前生今世FDW 走马观花走马观花CREATE FOREIGN DATA WRAPPER file_fdw;CREATE SERVER IF NOT EXISTS pg_log FOREIGN DATA WRAPPER file_fdw;CREATE USER MAPPING FOR postgres SERVER pg_log;CREATE FOREIGN TABLE pg
4、_log_monday (log_time timestamptz,user_name text,database_name text,process_id integer,location text,application_name text )SERVER pg_log OPTIONS(filename/pg/data/log/postgresql-Mon.csv,format csv);SELECT*FROM pg_log_monday;CREATE FORIEIGN DATA WRAPPERCREATE SERVERCREATE USER MAPPINGCREATE FOREIGN T
5、ABLEFDW 走马观花走马观花https:/wiki.postgresql.org/wiki/Foreign_data_wrappersSQL的的NoSQL的的BigData的的LocalFile的的Cloud的的百花齐放百花齐放FDW实例实例file_fdwpostgres_fdw原装品质,由PostgreSQL全球开发组维护原版自带,PostgreSQL默认自带这两个扩展File FDW访问外部表(文件,如CSV)读取任意程序的输出并将其转换为数据表只读访问访问CSV格式的格式的PG日志日志与外部软件(Excel,其他数据库)交换数据CREATE FOREIGN TABLE etc_pa
6、ssword(username TEXT,password TEXT,user_id INTEGER,group_id INTEGER,user_info TEXT,home_dir TEXT,shell TEXT)SERVER fs OPTIONS(PROGRAM$awk-F:NF&!/:space:*#/print$1,$2,$3,$4,$5,$6,$7 OFS=037/etc/passwd$,FORMAT csv,DELIMITER E037);除了除了CSV文件,任何输出文件,任何输出csv的程序都可以作为输入的程序都可以作为输入执行任意的Shell命令获取输出比如打印出/etc/pa