MariaDB comenzando con 10.0.4

El motor de almacenamiento Spider se lanzó por primera vez en MariaDB 10.0.4.

El motor de almacenamiento Spider admite particiones y transacciones XA, y permite que las tablas de diferentes instancias de MariaDB se manejen como si estuvieran en la misma instancia.

Para usar Spider, necesita dos o más instancias de MariaDB, que normalmente se ejecutan en hosts separados. El nodo Spider es el servidor MariaDB que recibe consultas de su aplicación. Luego procesa estas consultas, conectándose a uno o más nodos de datos. Los nodos de datos son los servidores MariaDB que realmente almacenan los datos de la tabla.

Para que esto funcione, debe configurar los nodos de datos para aceptar consultas del nodo Spider y debe configurar el nodo Spider para usar los nodos de datos como almacenamiento remoto.

No necesita instalar ningún paquete adicional para usarlo, pero requiere cierta configuración.

Configurar nodos de datos

Las implementaciones de Spider utilizan nodos de datos para almacenar los datos reales de la tabla. Para que un servidor MariaDB funcione como un nodo de datos para Spider, debe crear una tabla o tablas en las que almacenar los datos y configurar el servidor para aceptar conexiones de cliente desde el nodo Spider.

Por ejemplo, primero cree la tabla:

CREATE TABLE test.spider_example (
   id INT PRIMARY KEY AUTO_INCREMENT,
   name VARCHAR(50)
) ENGINE=InnoDB;

A continuación, cree un usuario para el nodo Spider y establezca una contraseña para ese usuario. Por el bien del ejemplo, suponga que el nodo Spider está en la dirección IP 192.168.1.1:

CREATE USER spider@192.168.1.1;

SET PASSWORD FOR spider@192.168.1.1 = PASSWORD('passwd');

Entonces conceda el spider privilegios de usuario en la tabla de ejemplo.

GRANT ALL ON test.spider_example TO spider@192.168.1.1;

El nodo de datos ahora está listo para usarse. Puede probarlo intentando conectar el cliente MariaDB a los datos del nodo Spider. Por ejemplo, asumiendo que el nodo de datos está en la dirección IP 192.168.1.5, SSH en el nodo Spider y luego intente establecer una conexión de cliente.

$ mysql -u spider -p -h 192.168.1.5 test -e "SHOW TABLES;"

+----------------+
| Tables_in_test |
+----------------+
| spider_example |
+----------------+

Configuración de nodos araña

Con el nodo de datos o los nodos de datos configurados, puede configurar el nodo Spider para usarlos. El nodo Spider es el servidor MariaDB que recibe consultas para la tabla (en este caso test.spider_example). Luego usa el motor de almacenamiento Spider para conectarse a las tablas en los nodos de datos para recuperar datos y devolver el conjunto de resultados.

Configuración de nodo

Para utilizar Spider, debe ejecutar el script de configuración en el nodo Spider. Puede comprobar si ya se ha instalado consultando el esquema de información.

SELECT ENGINE, SUPPORT FROM information_schema.ENGINES;

+--------------------+---------+
| ENGINE             | SUPPORT |
+--------------------+---------+
| CSV                | YES     |
| MyISAM             | YES     |
| BLACKHOLE          | YES     |
| FEDERATED          | YES     |
| MRG_MyISAM         | YES     |
| ARCHIVE            | YES     |
| MEMORY             | YES     |
| PERFORMANCE_SCHEMA | YES     |
| Aria               | YES     |
| InnoDB             | DEFAULT |
+--------------------+---------+

Si Spider no aparece en esta lista, debe ejecutar el script de configuración. Esto se instala con el servidor MariaDB en CentOS. Las distribuciones Debian necesitan instalar el mariadb-plugin-spider paquete primero. El paquete generalmente se encuentra en /usr/share/mysql.

SOURCE /usr/share/mysql/install_spider.sql

Nota: Si está ejecutando una distribución de código fuente de MariaDB, (es decir, donde lo compiló desde la fuente), la secuencia de comandos se encuentra en el directorio de compilación en storage/spider/scripts/install_spider.sql.

Para confirmar que se ha instalado, vuelva a consultar el esquema de información,

SELECT ENGINE, SUPPORT FROM information_schema.ENGINES
WHERE ENGINE = 'SPIDER';

+--------------------+---------+
| ENGINE             | SUPPORT |
+--------------------+---------+
| SPIDER             | YES     |
+--------------------+---------+

La ejecución de este script de configuración también crea una serie de tablas nuevas en el mysql base de datos, que incluye:

nombre de la tabla versión agregada
spider_xa MariaDB 10.0.4
spider_xa_member MariaDB 10.0.4
spider_xa_failed_log MariaDB 10.0.5
tablas_raña MariaDB 10.0.4
spider_link_mon_servers MariaDB 10.0.4
spider_link_failed_log MariaDB 10.0.4
spider_table_position_for_recovery MariaDB 10.3.3
mesa_de_la_raña MariaDB 10.3.3
spider_table_crd MariaDB 10.3.3

También actualiza el formato de las tablas si actualiza desde una versión anterior.

Configurar el servidor

Para conectar el nodo Spider a los nodos de datos, debe emitir un CREATE SERVER declaración para cada nodo de datos. A continuación, puede utilizar la definición del servidor para crear la tabla Spider.

CREATE SERVER dataNode1 FOREIGN DATA WRAPPER mysql
OPTIONS (
   HOST '192.168.1.5',
   DATABASE 'test',
   USER 'spider',
   PASSWORD 'passwd',
   PORT 3306);

En caso de que necesite modificar o reemplazar este servidor después de configurar la tabla Spider, recuerde emitir un FLUSH declaración para actualizar la definición del servidor.

FLUSH TABLES;

Crea la tabla

Con los nodos de datos configurados y el nodo Spider configurado para su uso, puede crear la tabla Spider. La tabla Spider debe tener las mismas definiciones de columna que las tablas InnoDB en los nodos de datos. La araña se configura a través de las variables del sistema de tabla que se pasan al COMMENT opción.

CREATE TABLE test.spider_example (
   id INT PRIMARY KEY AUTO_INCREMENT,
   name VARCHAR(50)
) ENGINE=Spider
COMMENT='wrapper "mysql", srv "dataNode1", table "spider_example"';

Esto configura Spider para usar el servidor dataNode1, (definido anteriormente), como una tabla remota. Cualquier dato que escriba en esta tabla se almacena en el servidor MariaDB en 192.168.1.5.

El contenido reproducido en este sitio es propiedad de sus respectivos dueños, y MariaDB no revisa este contenido con anticipación. Los puntos de vista, la información y las opiniones expresadas por este contenido no representan necesariamente las de MariaDB o de cualquier otra parte.