master_get_table_metadata函数的Citus documentation指出:

part_storage_type: Type of storage used for the table. May be ‘t’ (standard table), ‘f’ (foreign table) or ‘c’ (columnar table).

但我搜索了整个文档,没有找到如何处理使用’f'(外表)分区存储类型分发的表的示例.

我想可以使用以下方法创建初始外表:

CREATE FOREIGN TABLE audit (

id integer NOT NULL,

ctime timestamp without time zone DEFAULT now() NOT NULL,

site_id integer NOT NULL,

client_id integer,

done_time timestamp without time zone,

status text DEFAULT 'NEW' NOT NULL,

file_id character varying(16) DEFAULT ''::character varying NOT NULL

) SERVER mysql_svr OPTIONS (dbname 'constructor', table_name 'audit');

但是如何在创建后分发这样的表呢?如何创建分片?

更新

我找到了this

FOREIGN (‘f’) — Indicates that shard stores foreign data. (Used by distributed file_fdw tables)

所以我的问题仍然存在:是否可以使用其他外部数据包装器,例如mysql_fdw?

解决方法:

创建分布式外表只在Citus中现在只有部分支持.

我们举个例子:

CREATE FOREIGN TABLE audit (

id integer NOT NULL,

ctime timestamp without time zone DEFAULT now() NOT NULL,

site_id integer NOT NULL,

client_id integer,

done_time timestamp without time zone,

status text DEFAULT 'NEW' NOT NULL,

file_id character varying(16) DEFAULT ''::character varying NOT NULL

) SERVER mysql_svr

OPTIONS (dbname 'constructor', table_name 'audit');

您现在可以使用以下方式分发:

SELECT * FROM master_create_distributed_table('audit', 'id', 'append');

并使用以下方法创建分片:

SELECT master_create_worker_shards('audit', );

但是,在工作节点上创建的每个分片都将继承与主节点相同的选项.因此,在此示例中,每个分片将指向dbname“构造函数”和外部表“audit”.创建此类分发的价值有限,因为即使Citus将发出并行查询,它们也将再次发送到单个节点和表.

为了构建一个更有用的例子,假设你已经有一些(比方说是8个)分片的MySQL表,例如audit_1,audit_2,…,audit_8.

您可以构建与上面相同的表,并创建一个分布式设置,如下所示:

SELECT * FROM master_create_distributed_table('audit', 'id', 'append');

并使用以下方法创建分片:

SELECT master_create_worker_shards('audit', 8);

您现在需要登录每个Citus工作节点,并更新每个分片以指向它的相关MySQL分片.

例如:

ALTER TABLE audit_100208 OPTIONS(SET table_name’audit_1′);

如果您有跨多个节点或数据库的表,则需要为每个Citus工作节点上的每个外部节点手动创建特定服务器.

这里有一些需要注意的警告.首先,我们将分布标记为’append’,因为我们不知道外表的基础分布.如果您使用哈希,您可能会通过Citus得到错误的分区修剪.可能还有其他注意事项,因为这不是我们积极支持或测试过的用例.从历史的角度来看,我们主要使用它作为概念验证来尝试阅读跨多个节点分布的平面文件.

>通过’部分支持’,我的意思是我们将推下外表创建,但不会自动将不同的外表设置映射到不同的分片.

> SQL和PostgreSQL具有广泛的功能,我们目前不支持所有这些功能.我们正在编制可用功能列表,但在此期间,请告知我们您是否感兴趣的功能.

>当您发出master_create_distributed_table时,我们会自动创建存储类型为“f”的分片.

标签:mysql,postgresql,foreign-data-wrapper,citus

来源: https://codeday.me/bug/20190623/1269290.html

mysql_fdw在windows_Citus是否支持使用mysql_fdw创建分片?相关推荐

  1. 初创企业购买企业邮箱_支持#NetNeutrality =支持设计师及其创建的初创企业

    初创企业购买企业邮箱 by Lukasz Lysakowski 卢卡斯·吕萨科夫斯基(Lukasz Lysakowski) 支持#NetNeutrality =支持设计师及其创建的初创企业 (Supp ...

  2. MongoDB 所支持的数据类型 创建和删除集合 创建和删除数据库

    数据类型 MongoDB 支持如下数据类型: String:字符串.存储数据常用的数据类型.在 MongoDB 中,UTF-8 编码的字符串才是合法的. Integer:整型数值.用于存储数值.根据你 ...

  3. 打开*.HLP时,系统提示*.hlp是为此Windows版本不支持的语言创建的的解决方法!

    如果打开Delphi的帮助文件提示上面的错误对话框,则可以打开控制面板,然后打开"区域选项"对话框,然后在系统语言设置添加"西欧和美国"语言,设置如下: 转载于 ...

  4. PostGIS mysql_fdw安装(Linux)

    ##本人在安装过程中,可能因为系统环境因素或是其他原因,参考网上的文章没有一篇是非常顺利的,所以自己总结一下. ##安装过程中非常坎坷,有些地方反复了好几次,弄的有点模糊,但模糊的地方在文中我会指出. ...

  5. postgresql fdw mysql_mysql同步数据到PostgreSQL(使用mysql_fdw)

    1.安装 下载地址:https://github.com/EnterpriseDB/mysql_fdw 修改环境变量: export MYSQLHOME=/usr/local/mysql export ...

  6. ECS控制台支持创建资源时绑定标签

    目前,ECS控制台已经支持,在创建资源的同时绑定标签.资源包括实例.镜像.快照.安全组.密钥对.弹性网卡. 使用指南 以创建镜像为例. 打开控制台创建自定义镜像的对话框,在对话框下部找到标签的选择下拉 ...

  7. win 二进制门安装mysql_PG二进制包编译Windows下mysql_fdw

    1.mysql_fdw源码克隆 链接:https://github.com/EnterpriseDB/mysql_fdw/releases 选择最新版REL-2_5_1 2.mysql_fdw编译安装 ...

  8. 另辟蹊径创建移动应用:iOS和Android代码共享

    2019独角兽企业重金招聘Python工程师标准>>> 过去几年,移动应用席卷了整个世界,在工作和生活的方方面面改变着我们使用互联网的方式.创建移动应用的各种技术也随之兴起,各种开发 ...

  9. python做bi系统_如何使用Python创建可视化对象

    早前,Power BI就已经支持使用Python创建可视化对象了,当你遇到自定义程度较高的可视化对象时,Python就大大的派上了用场:那么我们如何使用呢?接下来小悦就为各位伙伴们介绍一下吧~ 首先, ...

  10. 【ASP.NET Web API教程】2.3.3 创建Admin控制器

    原文:[ASP.NET Web API教程]2.3.3 创建Admin控制器 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本博客文章,请先看前面的内容. Part 3 ...

最新文章

  1. 太TM难看了,我自己都看不下去了
  2. 【2019.7.16 NOIP模拟赛 T1】洗牌(shuffle)(找环)
  3. SpringBoot自定义MessageConverter
  4. boost::mpi模块非阻塞点对点操作的测试
  5. Java集合框架:Arrays工具类
  6. js 操作获取和设置cookie
  7. 苹果6可以分屏吗_苹果可以5g网络吗
  8. 网页另存显示不全_word另存为选项没有PDF格式怎么办?别忘了还有这招!
  9. Mysql binlog 日志的三种模式
  10. react实现异步插件_初识react(四) react中异步解决方案之 redux-saga
  11. 成为会带团队的技术人 业务理解:深入业务是做好架构的前提
  12. 4245. 【五校联考6day2】er
  13. 2022-2028年中国电子级醋酸行业市场调查研究及投资策略研究报告
  14. 你知道CAD中的样条曲线的绘制方法吗?
  15. 原生小程序转Taro开发
  16. ASP.NET访问Excel 失败的解决方法(错误号:80070005,8000401a)
  17. 分布式数据库服务器时钟同步(NTP网络时钟同步)北斗卫星同步时钟起到关键性作用
  18. Java HashMap中在resize()时候的rehash,即再哈希法的理解
  19. 周志明架构课--01.原始分布式时代
  20. MTK 按键驱动流程总结

热门文章

  1. mysql分区表设计(一)
  2. 关于JavaScript中的事件代理(例子:ul中无数的li上添加点击事件)
  3. MySQL集群安装与配置
  4. equals()与hashCode()方法协作约定
  5. python 100 days github_GitHub - Andyhe2019/Python-100-Days: Python - 100天从新手到大师
  6. minecraft服务器搭建教程_[学生福利]使用WINDOWS SERVER2012R2服务器搭建网站教程
  7. Java基础,无需使用复杂语句,实现输出0-130之间的数字,每行显示7个数字。
  8. c语言指向读取的字节数的指针,c - C语言中指针的大小 - SO中文参考 - www.soinside.com...
  9. 【转载】架构师的行为准则(三)
  10. 微信公共服务平台开发(.Net 的实现)5-------解决access_token过期的问题