[Sqoop] Importar datos en la tabla de particiones especificada de colmena de formato orc

El siguiente artículo está importando la tabla mysql en la tabla de particiones en formato de almacenamiento hiveORC

Importe la tabla mysql a la tabla de particiones en el formato de almacenamiento de archivos de texto de la colmena , haga clic aquí para saltar

Sqoop necesita depender de la biblioteca de HCatalog, por lo que es necesario configurar la variable de entorno $ HCAT_HOME. Generalmente, la ruta relevante de hcatalog se puede encontrar en el directorio de la colmena.

  • Copie hive-hcatalog-core-1.2.2.jar de hive / lib a sqoop / lib
  • cp $ HIVE_HOME / lib / hive-shims * $ SQOOP_HOME / lib / 
  • Agregue el archivo / etc / profile
export HCATALOG_HOME=${HIVE_HOME}/hcatalog

 Variables que deben asignarse en el siguiente script

$ {IP} La IP del servidor donde se encuentra mysql

$ {USERNAME} nombre de usuario mysql

$ {PWD} contraseña mysql

$ MYSQLTABLE mysql 表

El campo de hora en la tabla $ {date_field}

$ {nombre_de_partición} el nombre del campo de partición que debe agregarse en la colmena

Valor de la partición de colmena $ {partition_value}

1. Sqoop crea e importa datos a la tabla de hive orc

sqoop import \
--connect jdbc:mysql://$IP:3306/$MYSQLDB \
--username $USERNAME \
--password $PWD \
--table $MYSQLTABLE \
--driver com.mysql.jdbc.Driver \
--hcatalog-database intelligentCoal \
--create-hcatalog-table \
--hcatalog-table t_user_orc \
--where "date_format(${date_field},'%Y-%m-%d')='${partition_value}' and \$CONDITIONS" \
--hcatalog-partition-keys ${partition_name} \
--hcatalog-partition-values ${partition_value} \
--hcatalog-storage-stanza 'stored as orc tblproperties ("orc.compress"="SNAPPY")' \
-m 1

 La opción where se agrega o no según las necesidades. El efecto de no agregar where es el mismo que - where "1 = 1 y \ $ CONDICIONES" \

2. Sqoop importa datos a la tabla de orcos colmena existente

sqoop import \
--connect jdbc:mysql://$IP:3306/$MYSQLDB \
--username $USERNAME \
--password $PWD \
--table $MYSQLTABLE \
--driver com.mysql.jdbc.Driver \
--hcatalog-database intelligentCoal \
--hcatalog-table t_user_orc \
--where "date_format(${date_field},'%Y-%m-%d')='${partition_value}' and \$CONDITIONS" \
--hcatalog-partition-keys ${partition_name} \
--hcatalog-partition-values ${partition_value} \
--hcatalog-storage-stanza 'stored as orc tblproperties ("orc.compress"="SNAPPY")' \
-m 1

Si no especifica el tipo de campo, los datos varchar en MySQL también serán del tipo varchar cuando se extraigan en hive, pero el funcionamiento del tipo varchar en hive causará varios problemas

  1. Extracción incompleta de texto extenso y texto que contiene caracteres especiales

  2. El campo de tipo varchar de tabla orc de operación de colmena causa confusión

Solución: especifique el tipo de campo al extraer datos (xxx es la columna que desea cambiar a tipo de cadena)

-map-column-hive xxx=String,xxxx=String

 -------------------------------------------------- -------------------------------------------------- ---------------

conectar Información de conexión JDBC
nombre de usuario Nombre de usuario de autenticación JDBC
contraseña Contraseña de autenticación JDBC
mesa El nombre de la tabla de origen que se va a importar.
conductor Especificar el controlador JDBC
crear-tabla-hcatalog Especifique que la tabla debe crearse, si no se especifica, no se creará de forma predeterminada. Tenga en cuenta que si la tabla especificada ya existe, se informará un error
tabla-hcatalog El nombre de la tabla de destino que se exportará.
hcatalog-storage-stanza Especifique el formato de almacenamiento y el valor del parámetro se empalmará en el comando de creación de tabla. Predeterminado: almacenado como rcfile
claves-de-partición-hcatalog Especifique el campo de partición, separe varios campos con comas (versión mejorada de hive-partition-key)
valores-de-partición-hcatalog Especifique el valor de la partición, separe los valores de las particiones múltiples con comas (mejora del valor de partición de colmena)

Supongo que te gusta

Origin blog.csdn.net/qq_44065303/article/details/109379729
Recomendado
Clasificación