{"id":8901,"date":"2021-10-22T17:20:37","date_gmt":"2021-10-22T09:20:37","guid":{"rendered":"https:\/\/blog.hoyo.idv.tw\/?p=8901"},"modified":"2021-10-22T17:20:37","modified_gmt":"2021-10-22T09:20:37","slug":"mariadb-spider-%e5%88%86%e7%89%87","status":"publish","type":"post","link":"https:\/\/blog.hoyo.idv.tw\/?p=8901","title":{"rendered":"MariaDB - Spider \u5206\u7247"},"content":{"rendered":"<p>--<\/p>\n<ul>\n<li><a href=\"https:\/\/mp.weixin.qq.com\/s?__biz=MzkwOTIxNDQ3OA==&amp;mid=2247533631&amp;idx=1&amp;sn=2f7299683b0c09af7011d2f25d98e4c3&amp;source=41#wechat_redirect\" target=\"_blank\" rel=\"noopener\">MariaDB Spider\uff1a\u5b9e\u73b0MySQL\u6a2a\u7eb5\u5411\u6269\u5c55\u7684\u5c0f\u80fd\u624b<\/a><\/li>\n<li><a class=\"node_link crumb\" href=\"https:\/\/mariadb.com\/kb\/en\/spider-use-cases\/\" target=\"_blank\" rel=\"noopener\">Spider Use Cases<\/a><\/li>\n<li><a class=\"js-navigation-open Link--primary\" title=\"install_spider.sql\" href=\"https:\/\/github.com\/xiezhenye\/mysql-plugin-spider-engine\/blob\/master\/src\/scripts\/install_spider.sql\" target=\"_blank\" rel=\"noopener\" data-pjax=\"#repo-content-pjax-container\">install_spider.sql<\/a><\/li>\n<\/ul>\n<pre class=\"lang:default decode:true \"># apt install mariadb-plugin-spider\r\n# wget https:\/\/github.com\/xiezhenye\/mysql-plugin-spider-engine\/raw\/master\/src\/scripts\/install_spider.sql<\/pre>\n<p>\u5b89\u88dd Spider \u5b58\u5132\u5f15\u64ce<\/p>\n<pre class=\"lang:default decode:true\"># mysql -u root -p &lt; install_spider.sql\r\n@have_spider_plugin := 1\r\n1\r\n@have_spider_i_s_alloc_mem_plugin := 1\r\n1\r\n@have_spider_direct_sql_udf := 1\r\n1\r\n@have_spider_bg_direct_sql_udf := 1\r\n1\r\n@have_spider_ping_table_udf := 1\r\n1\r\n@have_spider_copy_tables_udf := 1\r\n1\r\n@have_spider_flush_table_mon_cache_udf := 1\r\n1<\/pre>\n<p>\u67e5\u8a62 SPIDER \u5b58\u5132\u5f15\u64ce\u662f\u5426\u652f\u63f4<\/p>\n<pre class=\"lang:default decode:true\"># mysql -e 'SELECT engine, support, transactions, xa FROM information_schema.engines;'\r\n+--------------------+---------+--------------+------+\r\n| engine             | support | transactions | xa   |\r\n+--------------------+---------+--------------+------+\r\n| SPIDER             | YES     | YES          | NO   |\r\n| MRG_MyISAM         | YES     | NO           | NO   |\r\n| MEMORY             | YES     | NO           | NO   |\r\n| Aria               | YES     | NO           | NO   |\r\n| MyISAM             | YES     | NO           | NO   |\r\n| SEQUENCE           | YES     | YES          | NO   |\r\n| InnoDB             | DEFAULT | YES          | YES  |\r\n| PERFORMANCE_SCHEMA | YES     | NO           | NO   |\r\n| CSV                | YES     | NO           | NO   |\r\n+--------------------+---------+--------------+------+\r\n9 rows in set (0.000 sec)<\/pre>\n<p>--<\/p>\n<h2>\u8a2d\u5b9a<\/h2>\n<p>172.16.1.175 - Spider \u4e3b\u6a5f<\/p>\n<pre class=\"lang:mysql decode:true\">CREATE SERVER backend1 FOREIGN DATA WRAPPER mysql \r\nOPTIONS(\r\n   HOST '172.16.1.170',\r\n   DATABASE 'test',\r\n   USER 'spider',\r\n   PASSWORD 'spider',\r\n   PORT 3306\r\n);\r\n\r\nCREATE SERVER backend2 FOREIGN DATA WRAPPER mysql \r\nOPTIONS(\r\n   HOST '172.16.1.173',\r\n   DATABASE 'test',\r\n   USER 'spider',\r\n   PASSWORD 'spider',\r\n   PORT 3306\r\n);<\/pre>\n<p>\u66f4\u65b0<\/p>\n<pre class=\"lang:default decode:true\">FLUSH TABLES;<\/pre>\n<p>\u5efa\u7acb\u5206\u8868\u898f\u5247<\/p>\n<pre class=\"lang:default decode:true\">create table opportunities (\r\n    id int,\r\n    accountName varchar(20),\r\n    name varchar(128),\r\n    owner varchar(7),\r\n    amount decimal(10,2),\r\n    closeDate date,\r\n    stageName varchar(11),\r\n    primary key (id),\r\n    key (accountName)\r\n) engine=spider COMMENT='wrapper \"mysql\", table \"opportunities\"'\r\n PARTITION BY HASH (id)\r\n(\r\n PARTITION pt1 COMMENT = 'srv \"backend1\"',\r\n PARTITION pt2 COMMENT = 'srv \"backend2\"'\r\n) ;<\/pre>\n<p>172.16.1.170 - backend1<\/p>\n<pre class=\"lang:default decode:true \">create table opportunities (\r\nid int,\r\naccountName varchar(20),\r\nname varchar(128),\r\nowner varchar(7),\r\namount decimal(10,2),\r\ncloseDate date,\r\nstageName varchar(11),\r\nprimary key (id),\r\nkey (accountName)\r\n) engine=InnoDB;<\/pre>\n<p>172.16.1.173 - backend2<\/p>\n<pre class=\"lang:default decode:true\">create table opportunities (\r\nid int,\r\naccountName varchar(20),\r\nname varchar(128),\r\nowner varchar(7),\r\namount decimal(10,2),\r\ncloseDate date,\r\nstageName varchar(11),\r\nprimary key (id),\r\nkey (accountName)\r\n) engine=InnoDB;<\/pre>\n<p>\u5f9e Spider \u4e3b\u6a5f\u57f7\u884c\u8cc7\u6599\u5eab\u8b80\u5beb\uff0c<\/p>\n<p><a href=\"https:\/\/blog.hoyo.idv.tw\/wp-content\/uploads\/2021\/10\/20211022_165816.png\" data-rel=\"lightbox-image-0\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" class=\"alignnone size-medium wp-image-8980\" src=\"https:\/\/blog.hoyo.idv.tw\/wp-content\/uploads\/2021\/10\/20211022_165816-300x285.png\" alt=\"\" width=\"300\" height=\"285\" srcset=\"https:\/\/blog.hoyo.idv.tw\/wp-content\/uploads\/2021\/10\/20211022_165816-300x285.png 300w, https:\/\/blog.hoyo.idv.tw\/wp-content\/uploads\/2021\/10\/20211022_165816-768x729.png 768w, https:\/\/blog.hoyo.idv.tw\/wp-content\/uploads\/2021\/10\/20211022_165816-316x300.png 316w, https:\/\/blog.hoyo.idv.tw\/wp-content\/uploads\/2021\/10\/20211022_165816.png 993w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>--<\/p>\n<h2>\u522a\u9664<\/h2>\n<pre class=\"lang:default decode:true\">DROP SERVER backend1;\r\nDROP SERVER backend2;<\/pre>\n<p>--<\/p>\n<h2>Error 1429: Unable to connect to foreign data source<\/h2>\n<pre class=\"lang:default decode:true\">FLUSH TABLES;<\/pre>\n<p>--<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p class=\"pvc_stats all \" data-element-id=\"8901\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> &nbsp;1,214&nbsp;total views, &nbsp;1&nbsp;views today<\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>-- MariaDB Spid...<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p class=\"pvc_stats all \" data-element-id=\"8901\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> &nbsp;1,214&nbsp;total views, &nbsp;1&nbsp;views today<\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[31],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.hoyo.idv.tw\/index.php?rest_route=\/wp\/v2\/posts\/8901"}],"collection":[{"href":"https:\/\/blog.hoyo.idv.tw\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.hoyo.idv.tw\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.hoyo.idv.tw\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.hoyo.idv.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8901"}],"version-history":[{"count":16,"href":"https:\/\/blog.hoyo.idv.tw\/index.php?rest_route=\/wp\/v2\/posts\/8901\/revisions"}],"predecessor-version":[{"id":8985,"href":"https:\/\/blog.hoyo.idv.tw\/index.php?rest_route=\/wp\/v2\/posts\/8901\/revisions\/8985"}],"wp:attachment":[{"href":"https:\/\/blog.hoyo.idv.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.hoyo.idv.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.hoyo.idv.tw\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}