Exportación de datos ORC de un clúster de DWS a un clúster de MRS
DWS le permite exportar datos ORC a MRS mediante una tabla foránea de HDFS. Puede especificar el modo de exportación y el formato de datos de exportación en la tabla externa. Los datos se exportan de DWS en paralelo mediante múltiples DN y se almacenan en HDFS. De este modo, se mejora el rendimiento general de la exportación.
Preparación del entorno
Cree un clúster de DWS. Asegúrese de que los clústeres de MRS y DWS estén en la misma región, AZ y subred de VPC y que los clústeres puedan comunicarse entre sí.
Creación de un clúster de MRS
- Inicie sesión en la consola de MRS y haga clic en Buy Cluster. En la página que se muestra, seleccione Custom Config, configure los parámetros de software y haga clic en Next.
Tabla 1 Configuración de software Parámetro
Valor de ejemplo
Region
CN-Hong Kong
Cluster Name
mrs_01
Cluster Version
MRS 1.9.2 (recomendada)
NOTA:- Para los clústeres de la versión 8.1.1.300 y posteriores, los clústeres de MRS admiten las versiones 1.6.*, 1.7.*, 1.8.*, 1.9.*, 2.0.*, 3.0.*, 3.1.* y posteriores (* indica un número).
- Para los clústeres anteriores a la versión 8.1.1.300, los clústeres de MRS admiten las versiones 1.6.*, 1.7.*, 1.8.*, 1.9.* y 2.0.* (* indica un número).
Cluster Type
Clúster de análisis
- Configure los parámetros de hardware y haga clic en Next.
Tabla 2 Configuración de hardware Parámetro
Valor de ejemplo
Billing Mode
Pago por uso
AZ
AZ2
VPC
vpc-01
Subnet
subnet-01
Security Group
Creación automática
EIP
10.x.x.x
Enterprise Project
default
Master
2
Analysis Core
3
Analysis Task
0
- Configure los ajustes avanzados según la siguiente tabla, haga clic en Buy Now y espere unos 15 minutos para que se complete la creación del clúster.
Tabla 3 Configuración avanzada Parámetro
Valor de ejemplo
Tag
test01
Hostname Prefix
(Opcional) Prefijo para el nombre de un ECS o BMS en el clúster.
Auto Scaling
Conserve el valor predeterminado.
Bootstrap Action
Conserve el valor predeterminado. MRS 3.x no admite este parámetro.
Agency
Conserve el valor predeterminado.
Data Disk Encryption
Esta función está deshabilitada de forma predeterminada. Conserve el valor predeterminado.
Alarm
Conserve el valor predeterminado.
Rule Name
Conserve el valor predeterminado.
Topic Name
Seleccione un tema.
Kerberos Authentication
Este parámetro está habilitado de forma predeterminada.
User Name
admin
Password
Esta contraseña se utiliza para iniciar sesión en la página de gestión del clúster.
Confirm Password
Ingrese la contraseña del usuario Admin de nuevo.
Login Mode
Contraseña
User Name
root
Password
Esta contraseña se utiliza para iniciar sesión de forma remota en el ECS.
Confirm Password
Ingrese la contraseña del usuario root de nuevo.
Secure Communications
Seleccione Enable.
Creación de una conexión de clúster de MRS
- Inicie sesión en la consola de DWS y haga clic en el clúster de DWS creado. Asegúrese de que el clúster de DWS y MRS estén en la misma región, AZ y subred de VPC.
- Haga clic en la pestaña MRS Data Source y haga clic en Create MRS Cluster Connection.
- Seleccione el origen de datos mrs_01 creado en el paso anterior, ingrese el nombre de la cuenta de MRS admin y su contraseña, y haga clic en OK.

Creación de un servidor foráneo
- Conéctese al clúster de DWS creado.
- Cree un usuario dbuser que tenga permiso para crear bases de datos.
1CREATE USER dbuser WITH CREATEDB PASSWORD 'password';
- Cambie al usuario dbuser.
1SET ROLE dbuser PASSWORD 'password';
- Cree una base de datos mydatabase.
1CREATE DATABASE mydatabase;
- Cambie a la nueva base de datos mydatabase y otorgue el permiso para crear servidores externos al usuario dbuser. En la versión 8.1.1 y versiones posteriores, también debe otorgar el permiso para usar el modo público.
1 2
GRANT ALL ON FOREIGN DATA WRAPPER hdfs_fdw TO dbuser; In GRANT ALL ON SCHEMA public TO dbuser; //8.1.1 and later versions, common users do not have permission on the public mode and need to grant permission. In versions earlier than 8.1.1, you do not need to perform this operation.
El nombre de FOREIGN DATA WRAPPER debe ser hdfs_fdw. dbuser indica el nombre de usuario de CREATE SERVER.
- Otorgue al usuario dbuser el permiso para usar tablas foráneas.
1ALTER USER dbuser USEFT;
- Cambie a la base de datos Postgres y consulte el servidor foráneo creado automáticamente por el sistema después de crear el origen de datos de MRS.
1SELECT * FROM pg_foreign_server;
Se muestra información similar a la siguiente:
1 2 3 4 5 6
srvname | srvowner | srvfdw | srvtype | srvversion | srvacl | srvoptions --------------------------------------------------+----------+--------+---------+------------+--------+--------------------------------------------------------------------------------------------------------------------- gsmpp_server | 10 | 13673 | | | | gsmpp_errorinfo_server | 10 | 13678 | | | | hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca | 16476 | 13685 | | | | {"address=192.168.1.245:9820,192.168.1.218:9820",hdfscfgpath=/MRS/8f79ada0-d998-4026-9020-80d6de2692ca,type=hdfs} (3 rows)
- Cambie a la base de datos mydatabase y cambie al usuario dbuser.
1SET ROLE dbuser PASSWORD 'password';
- Cree un servidor externo.
El nombre del servidor, la dirección y la ruta de configuración deben ser los mismos que los de 7.
1 2 3 4 5 6 7
CREATE SERVER hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca FOREIGN DATA WRAPPER HDFS_FDW OPTIONS ( address '192.168.1.245:9820,192.168.1.218:9820', //The intranet IP addresses of the active and standby master nodes on the MRS management plane, which can be used to communicate with DWS. hdfscfgpath '/MRS/8f79ada0-d998-4026-9020-80d6de2692ca', type 'hdfs' );
- Vea el servidor foráneo.
1SELECT * FROM pg_foreign_server WHERE srvname='hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca';
El servidor se crea correctamente si se muestra información similar a la siguiente:
1 2 3 4
srvname | srvowner | srvfdw | srvtype | srvversion | srvacl | srvoptions --------------------------------------------------+----------+--------+---------+------------+--------+--------------------------------------------------------------------------------------------------------------------- hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca | 16476 | 13685 | | | | {"address=192.168.1.245:9820,192.168.1.218:9820",hdfscfgpath=/MRS/8f79ada0-d998-4026-9020-80d6de2692ca,type=hdfs} (1 row)
Creación de una tabla foránea
Cree una tabla foránea HDFS que no contenga columnas de partición. El servidor foráneo asociado a la tabla es hdfs_server, el formato del archivo en HDFS correspondiente a la tabla es ORC y la ruta de almacenamiento de datos en HDFS es /user/hive/warehouse/product_info_orc/.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | DROP FOREIGN TABLE IF EXISTS product_info_output_ext; CREATE FOREIGN TABLE product_info_output_ext ( product_price integer , product_id char(30) , product_time date , product_level char(10) , product_name varchar(200) , product_type1 varchar(20) , product_type2 char(10) , product_monthly_sales_cnt integer , product_comment_time date , product_comment_num integer , product_comment_content varchar(200) ) SERVER hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca OPTIONS ( format 'orc', foldername '/user/hive/warehouse/product_info_orc/', compression 'snappy', version '0.12' ) Write Only; |
Exportación de datos
Cree una tabla ordinaria product_info_output.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | DROP TABLE product_info_output; CREATE TABLE product_info_output ( product_price int , product_id char(30) , product_time date , product_level char(10) , product_name varchar(200) , product_type1 varchar(20) , product_type2 char(10) , product_monthly_sales_cnt int , product_comment_time date , product_comment_num int , product_comment_content varchar(200) ) with (orientation = column,compression=middle) distribute by hash (product_name); |
1 | INSERT INTO product_info_output_ext SELECT * FROM product_info_output; |
Si se muestra la siguiente información, los datos se exportaron correctamente:
1 | INSERT 0 10 |
Consulta del resultado de la exportación
- Vaya a la lista de clústeres de MRS. Haga clic en el nombre de un clúster para ir a la página de detalles del clúster.
- Haga clic en la pestaña Files y haga clic en HDFS File List. Verifique el archivo ORC exportado en el directorio user/hive/warehouse/product_info_orc.

Los datos ORC exportados de DWS cumplen con las siguientes reglas:
- Datos exportados a MRS (HDFS): Cuando los datos se exportan desde un DN, los datos se almacenan en HDFS en formato de segmento. El archivo se nombra en el formato mpp_DatabaseName_SchemaName_TableName_NodeName_n.orc.
- Se recomienda exportar datos de diferentes clústeres o bases de datos a diferentes rutas. El tamaño máximo de un archivo ORC es de 128 MB, y el tamaño máximo de una stripe es de 64 MB.
- Una vez completada la exportación, se genera el archivo _SUCCESS.