当前位置: 首页 > news >正文

做 爱 网站小视频安卓优化大师官方版本下载

做 爱 网站小视频,安卓优化大师官方版本下载,做网站一般什么问题,做优秀网站在上一篇博客里,最末尾提到了 FDW。pg 实现了数百个 fdw 插件,用于访问外部数据。 FDW 到底是什么呢? 标准 FDW(Foreign Data Wrapper)遵循了 SQL/MED 标准,标准全称:ISO/IEC 9075-9 Managem…

在上一篇博客里,最末尾提到了 FDW。pg 实现了数百个 fdw 插件,用于访问外部数据。

FDW 到底是什么呢?

标准

FDW(Foreign Data Wrapper)遵循了 SQL/MED 标准,标准全称:ISO/IEC 9075-9 Management of External Data (SQL/MED)

2003 年,SQL/MED(SQL Management of External Data)被加入 SQL 标准,其为外部数据管理提供了规范。在 2011 年发行的 PostgreSQL 9.1 开始支持外部数据读,2013 发行的 PostgreSQL 9.3 开始支持外部数据写。

下面两篇 PG wiki 内容介绍得很详细:

  • https://wiki.postgresql.org/wiki/SQL/MED
  • https://wiki.postgresql.org/wiki/Foreign_data_wrappers

FDW 有何用?

source:https://leileiluoluo.com/posts/postgres-foreign-data-wrappers.html

  1. 数据分片

使用 FDW 将数据分布式存储在多个数据库上从而实现数据分片(如 pg_shardman 插件,即是使用 postgres_fdw 和 pg_pathman 插件来实现数据分片的)。

  1. 数据同步

使用 FDW 建立本地数据库与外部数据库的连接,即可定时同步外部数据至本地。

  1. 数据迁移

使用 FDW 建立本地数据库与外部数据库的连接,即可进行数据迁移。

  1. ETL(Extract-Transform-Load,抽取转换加载)

使用 FDW 将来自不同类型数据库的数据抽取到一个数据仓库中,便于统一化访问。

在这里插入图片描述

PG 实现

pg 实现了数百个 fdw,用于访问外部数据,包括:

  • Generic SQL Database Wrappers (如 JDBC、ODBC)
  • Specific SQL Database Wrappers(如 MySQL、SQLServer)
  • NoSQL Database Wrappers(如 Redis、Cassandra)
  • File Wrappers(如 CSV、JSON、Parquet)
  • Geo Wrappers
  • LDAP Wrappers
  • Generic Web Wrappers(如 git、www)
  • Specific Web Wrappers
  • Big Data Wrappers(如 ES、HDFS、Hive、Arrow)
  • Operating System Wrappers
  • Exotic Wrappers(如 faker_fdw)

这个页面里,可以找到这些 Wrapper 的源码。

从上面的实现里可以看到,所有 wrapper 的核心,都是实现 FdwRoutine 中的接口。

/** Foreign-data wrapper handler function: return a struct with pointers* to my callback routines.*/
Datum
jdbc_fdw_handler(PG_FUNCTION_ARGS)
{FdwRoutine 	*fdwroutine = makeNode(FdwRoutine);#if (PG_VERSION_NUM < 90200)fdwroutine->PlanForeignScan = jdbcPlanForeignScan;#endif#if (PG_VERSION_NUM >= 90200)fdwroutine->GetForeignRelSize = jdbcGetForeignRelSize;fdwroutine->GetForeignPaths = jdbcGetForeignPaths;fdwroutine->GetForeignPlan = jdbcGetForeignPlan;#endiffdwroutine->ExplainForeignScan = jdbcExplainForeignScan;fdwroutine->BeginForeignScan = jdbcBeginForeignScan;fdwroutine->IterateForeignScan = jdbcIterateForeignScan;fdwroutine->ReScanForeignScan = jdbcReScanForeignScan;fdwroutine->EndForeignScan = jdbcEndForeignScan;pqsignal(SIGINT, SIGINTInterruptHandler);PG_RETURN_POINTER(fdwroutine);
}

关于 FdwRoutine 中每个接口的含义,可以参考 PG 官网文章:https://www.postgresql.org/docs/current/fdw-callbacks.html

关于 FdwRountine 的更多细节,可以参考专门的文章,十分有趣。如果你希望写一个自己的 wrapper,从 helloworld 入手会非常合适。

思考

PG 真的是一个学院派数据库!在设计之初就能提炼出一个具备进化能力的外部数据接入框架,实在是伟大(实际经历过企业系统研发的人是能体会的)。

FDW 从产品层面的成功之处,是定义好了一套标准的使用接口,包括:定义 FDW Server;定义 FDW 外表,且支持传入选项。

例如:

CREATE SERVER foreign_serverFOREIGN DATA WRAPPER postgres_fdwOPTIONS (host 'localhost', port '5432', dbname 'postgres');CREATE FOREIGN TABLE foreign_weather (city        varchar(80),temp_low    int,temp_high   int,prcp        real,date        date) SERVER foreign_serverOPTIONS (schema_name 'public', table_name 'weather');IMPORT FOREIGN SCHEMA public FROM SERVER foreign_server INTO public;

有了这套接口,用户就能够非常自由地实现自己的 fdw 扩展。

FDW 从执行层面的成功之处,成功定义了 FdwRoutine 接口,在整个 postgres 实现中贯彻了接口思想,落实在了代码中。

进一步思考

从 FdwRoutine 支持的接口看,并不支持 batch mode,它仅支持火山模型的逐行读取。假设要支持高效的 parquet 文件向量化处理,用 parquet_fdw 插件大约是获取不到最优性能的。

http://www.dinnco.com/news/58870.html

相关文章:

  • 嘉兴网站建设的地方广告平台推广渠道
  • 个人做网站名称可以随意更改吗24小时人工在线客服
  • 网站建设平台对比太原seo网站排名
  • 云南省建设厅专家注册网站小红书推广引流软件
  • 网站建设公司如何生存百度的推广方式有哪些
  • 电商网站建设基础ppt网站seo优化案例
  • 做百科需要用什么网站做参考百度推广入口官网
  • 二次开发英语北京专业网站优化
  • wordpress published怎么做优化
  • 琼海市规划建设局网站网络游戏排行榜百度风云榜
  • 微信开放平台 网站开发百度学术官网首页
  • dw做asp购物网站关键词权重如何打造
  • wordpress图像描述seo整站优化推广
  • 服装生产厂商网站建设方案公司网站如何在百度上能搜索到
  • 衡水做淘宝网站最近时事热点新闻评论及点评
  • 景县网站建设南宁网站建设
  • 个人和做网站方签合同模板手机优化大师官方免费下载
  • 怎么做网站301转向什么软件可以搜索关键词精准
  • 重庆专业做淘宝网站曼联对利物浦新闻
  • 合肥专业网站制建网站免费
  • 自制响应式网站网络搜索引擎优化
  • 新乡移动网站建设网站 软件
  • 网络营销推广哪家比较好专业seo站长工具全面查询网站
  • .net 接单网站有哪些制作一个网站的费用是多少
  • 贵阳哪些公司建网站短视频营销的优势
  • 网站外链怎么发百度广告联盟赚广告费
  • 利用大平台做网站网络营销sem培训
  • 免费网站设计模板网络上如何推广网站
  • 做视频网站需要多少上传国内建站平台
  • 教做甜点的网站怎么建网页