Importación de datos de tablas desde MRS Hive a un clúster de DWS
Se crea una tabla externa de HDFS para permitir que DWS acceda o lea remotamente las fuentes de datos de MRS. DWS transmite datos a través de servidores y tablas externos. Esta práctica simula el proceso de escritura de datos desde una tabla ORC almacenada en MRS Hive hacia DWS mediante la creación de un servidor foráneo de fuente cruzada y una tabla foránea.
Un servidor foráneo es un objeto virtual configurado en una base de datos. Se utiliza para definir parámetros (como la dirección, el protocolo y la información de autenticación) para conectarse a una fuente de datos externa. A través de los servidores foráneos, la base de datos local puede consultar e insertar datos externos directamente, al igual que las tablas locales. (La sintaxis es similar, pero puede estar restringida por el rendimiento o las funciones).
Una tabla foránea es una tabla virtual en una base de datos. Los datos se almacenan fuera del sistema de bases de datos (como sistemas de archivos, otras bases de datos y almacenamiento en la nube). Sin embargo, mediante la definición y la interfaz de acceso del esquema de la tabla (metadatos), los usuarios pueden consultar los datos externos utilizando sentencias SQL estándar sin necesidad de importar los datos a la base de datos.
Según el tipo de fuente de datos interconectada, existen tablas foráneas de HDFS y tablas foráneas de OBS. La primera lee datos del sistema de archivos distribuido HDFS y la segunda lee datos del Object Storage Service (OBS).

- Para obtener detalles sobre MRS, consulte Documentación de MRS.
- Para obtener detalles sobre la sintaxis del servidor foráneo, consulte CREATE SERVER.
- Para obtener detalles sobre la sintaxis de la tabla foránea, consulte CREATE FOREIGN TABLE (SQL en OBS o Hadoop).
Esta práctica toma aproximadamente 1 hora. El procedimiento básico es el siguiente:
- Paso 1: Comprar un clúster de MRS y preparar la fuente de datos de la tabla ORC de MRS: Cree un clúster de análisis MRS, cargue los archivos de datos TXT locales en un bucket de OBS e importe los archivos a una tabla de almacenamiento Hive y, a continuación, a una tabla de almacenamiento ORC.
- Paso 2: Crear una conexión de origen de datos de MRS: Cree una fuente de datos de MRS en la consola de DWS. Por defecto, se genera un servidor foráneo denominado mrs.
- Paso 3: Crear una tabla foránea: Cree una tabla foránea HDFS para acceder a los datos de MRS.
- Paso 4: Importar datos: Importe datos a una tabla local de DWS a través de una tabla foránea HDFS.
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í.
Paso 1: Comprar un clúster de MRS y preparar la fuente de datos de la tabla ORC de MRS
- Compre un clúster de análisis de MRS. Configure los parámetros clave como se describe en Tabla 1 y conserve los valores predeterminados de los otros parámetros. Para obtener más información, consulte Compra de clústeres de MRS. La creación de un clúster tarda aproximadamente 15 minutos. Puede continuar con las siguientes operaciones durante la creación del clúster.
Tabla 1 Parámetros Parámetro
Valor
Region
CN-Hong Kong
Billing Mode
Pago por uso
Cluster Type
Clúster de análisis
Version Type
Normal
Cluster Version
MRS 1.9.2 (recomendada)
ATENCIÓN:- Los clústeres de DWS de la versión 8.1.1.300 o posterior admiten MRS 1.6.*, 1.7.*, 1.8.*, 1.9.*, 2.0.*, 3.0.*, 3.1.* y posteriores (* indica un número).
- Los clústeres de DWS anteriores a la versión 8.1.1.300 admiten MRS 1.6.*, 1.7.*, 1.8.*, 1.9.* y 2.0.* (* indica un número).
Metadata
Local
AZ
AZ 1
CPU Architecture
x86
Kerberos Authentication
Deshabilitada
Login Mode
Contraseña
- Cree un archivo product_info.txt en la PC local, copie los siguientes datos en el archivo y guárdelo en la PC local.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
100,XHDK-A-1293-#fJ3,2017-09-01,A,2017 Autumn New Shirt Women,red,M,328,2017-09-04,715,good 205,KDKE-B-9947-#kL5,2017-09-01,A,2017 Autumn New Knitwear Women,pink,L,584,2017-09-05,406,very good! 300,JODL-X-1937-#pV7,2017-09-01,A,2017 autumn new T-shirt men,red,XL,1245,2017-09-03,502,Bad. 310,QQPX-R-3956-#aD8,2017-09-02,B,2017 autumn new jacket women,red,L,411,2017-09-05,436,It's really super nice 150,ABEF-C-1820-#mC6,2017-09-03,B,2017 Autumn New Jeans Women,blue,M,1223,2017-09-06,1200,The seller's packaging is exquisite 200,BCQP-E-2365-#qE4,2017-09-04,B,2017 autumn new casual pants men,black,L,997,2017-09-10,301,The clothes are of good quality. 250,EABE-D-1476-#oB1,2017-09-10,A,2017 autumn new dress women,black,S,841,2017-09-15,299,Follow the store for a long time. 108,CDXK-F-1527-#pL2,2017-09-11,A,2017 autumn new dress women,red,M,85,2017-09-14,22,It's really amazing to buy 450,MMCE-H-4728-#nP9,2017-09-11,A,2017 autumn new jacket women,white,M,114,2017-09-14,22,Open the package and the clothes have no odor 260,OCDA-G-2817-#bD3,2017-09-12,B,2017 autumn new woolen coat women,red,L,2004,2017-09-15,826,Very favorite clothes 980,ZKDS-J-5490-#cW4,2017-09-13,B,2017 Autumn New Women's Cotton Clothing,red,M,112,2017-09-16,219,The clothes are small 98,FKQB-I-2564-#dA5,2017-09-15,B,2017 autumn new shoes men,green,M,4345,2017-09-18,5473,The clothes are thick and it's better this winter. 150,DMQY-K-6579-#eS6,2017-09-21,A,2017 autumn new underwear men,yellow,37,2840,2017-09-25,5831,This price is very cost effective 200,GKLW-l-2897-#wQ7,2017-09-22,A,2017 Autumn New Jeans Men,blue,39,5879,2017-09-25,7200,The clothes are very comfortable to wear 300,HWEC-L-2531-#xP8,2017-09-23,A,2017 autumn new shoes women,brown,M,403,2017-09-26,607,good 100,IQPD-M-3214-#yQ1,2017-09-24,B,2017 Autumn New Wide Leg Pants Women,black,M,3045,2017-09-27,5021,very good. 350,LPEC-N-4572-#zX2,2017-09-25,B,2017 Autumn New Underwear Women,red,M,239,2017-09-28,407,The seller's service is very good 110,NQAB-O-3768-#sM3,2017-09-26,B,2017 autumn new underwear women,red,S,6089,2017-09-29,7021,The color is very good 210,HWNB-P-7879-#tN4,2017-09-27,B,2017 autumn new underwear women,red,L,3201,2017-09-30,4059,I like it very much and the quality is good. 230,JKHU-Q-8865-#uO5,2017-09-29,C,2017 Autumn New Clothes with Chiffon Shirt,black,M,2056,2017-10-02,3842,very good
- Inicie sesión en la consola de OBS, haga clic en Create Bucket, configure los parámetros clave de la siguiente tabla, conserve los valores predeterminados de los otros parámetros y haga clic en Create Now.
Tabla 2 Parámetros de bucket Parámetro
Valor
Region
CN-Hong Kong
Data Redundancy Policy
Almacenamiento en una sola AZ
Bucket Name
mrs-datasource
Default Storage Class
Estándar
Bucket Policy
Privada
Default Encryption
Deshabilitada
Direct Reading
Deshabilitada
Tags
N/D
- Una vez creado el bucket, haga clic en el nombre del bucket y seleccione Object > Upload Object para cargar el archivo product_info.txt en el bucket de OBS.
- Vuelva a la consola de MRS y haga clic en el nombre del clúster de MRS creado. En la página Dashboard, haga clic en Synchronize junto a IAM User Sync. La sincronización tarda aproximadamente un minuto.
- Haga clic en Nodes y haga clic en un nodo principal. En la página que se muestra, cambie a la pestaña EIPs, haga clic en Bind EIP, seleccione una EIP existente y haga clic en OK. Si no hay ninguna EIP disponible, cree una. Registre la EIP.
- Determine el nodo maestro activo.
- Utilice SSH para iniciar sesión en el nodo anterior como usuario root. Ejecute el siguiente comando para cambiar al usuario omm:
su - omm
- Ejecute el siguiente comando para consultar el nodo principal:
sh ${BIGDATA_HOME}/om-0.0.1/sbin/status-oms.sh
Si el valor de HAActive es active, el nodo es el nodo principal.
- Utilice SSH para iniciar sesión en el nodo anterior como usuario root. Ejecute el siguiente comando para cambiar al usuario omm:
- Cierre la sesión y, a continuación, inicie sesión en el nodo principal como usuario root y cambie al usuario omm.
su - omm
- Vaya al directorio donde se encuentra el cliente Hive.
cd /opt/client
- Cree la tabla product_info cuyo formato de almacenamiento es TEXTFILE en Hive.
- Importe las variables de entorno al directorio /opt/client.
source bigdata_env
- Inicie sesión en el cliente Hive.
- Ejecute los siguientes comandos SQL en secuencia para crear una base de datos de demostración y la tabla product_info:
1CREATE DATABASE demo;
1USE demo;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
DROP TABLE product_info; CREATE TABLE product_info ( 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) ) row format delimited fields terminated by ',' stored as TEXTFILE;
- Importe las variables de entorno al directorio /opt/client.
- Importe el archivo product_info.txt a Hive.
- Vuelva al clúster de MRS, haga clic en Files > Import Data.
- OBS Path: Busque el archivo product_info.txt en el bucket de OBS creado y haga clic en Yes.
- HDFS Path: Seleccione /user/hive/warehouse/demo.db/product_info/ y haga clic en Yes.
- Haga clic en OK para importar los datos de la tabla product_info.
- Vuelva al clúster de MRS, haga clic en Files > Import Data.
- Cree una tabla ORC e importe datos a la tabla.
- Vuelva a la ventana SQL conectada al cliente Hive y ejecute la siguiente sentencia SQL para crear una tabla ORC:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
DROP TABLE product_info_orc; CREATE TABLE product_info_orc ( 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) ) row format delimited fields terminated by ',' stored as orc;
- Inserte datos en la tabla product_info en la tabla Hive ORC product_info_orc.
1INSERT INTO product_info_orc select * from product_info;
- Consulte si la importación de datos se realizó correctamente.
1SELECT * FROM product_info_orc;
- Vuelva a la ventana SQL conectada al cliente Hive y ejecute la siguiente sentencia SQL para crear una tabla ORC:
Paso 2: Crear una conexión de origen de datos de MRS
- Inicie sesión en la consola de DWS. En el panel de navegación, seleccione Dedicated Clusters > Clusters. 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.
- En la barra de navegación superior, seleccione Data Source. En la página MRS Data Source, haga clic en Create MRS Cluster Connection.
- Configure los parámetros que se enumeran en la siguiente tabla, conserve los valores predeterminados de los otros parámetros y haga clic en OK.
Tabla 3 Parámetros Parámetro
Valor
Data Source
mrs
Configuration Mode
Cuenta de MRS
MRS Data Source
mrs_01 creado en el paso anterior
MRS Account
admin
Password
Contraseña definida por el usuario
Database
gaussdb

Paso 3: Crear una tabla foránea
- Conéctese al clúster de DWS creado.
- Vea los servidores externos del sistema.
1SELECT * FROM pg_foreign_server;
El resultado de la consulta muestra que, después de crear el origen de datos de MRS, el sistema genera automáticamente un servidor externo denominado mrs.

- Obtenga la ruta del archivo product_info_orc de Hive.
- Inicie sesión en la consola de MRS.
- Elija Cluster > Active Cluster y haga clic en el nombre del clúster que se consultará para acceder a la página que muestra la información básica del clúster.
- Haga clic en Files y haga clic en HDFS File List.
- Vaya al directorio de almacenamiento de los datos que se importarán al clúster de DWS y registre la ruta. Figura 1 Verificación de la ruta de almacenamiento de datos en MRS
- Cree una tabla foránea. Establezca SERVER en el nombre del origen de datos de MRS creado en Paso 2: Crear una conexión de origen de datos de MRS, por ejemplo, mrs, y establezca foldername en la ruta consultada en 3.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
DROP FOREIGN TABLE IF EXISTS foreign_product_info; CREATE FOREIGN TABLE foreign_product_info ( 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 mrs OPTIONS ( format 'orc', encoding 'utf8', foldername '/user/hive/warehouse/demo.db/product_info_orc/' ) DISTRIBUTE BY ROUNDROBIN;
Paso 4: Importar datos
- Cree una tabla local para la importación de datos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
DROP TABLE IF EXISTS product_info; CREATE TABLE product_info ( 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) ) with ( orientation = column, compression=middle ) DISTRIBUTE BY HASH (product_id);
- Importe datos a la tabla de destino desde la tabla externa.
1INSERT INTO product_info SELECT * FROM foreign_product_info;
- Consulte el resultado de la importación.
1SELECT * FROM product_info;
