Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A:
Azure Data Factory
Azure Synapse Analytics
Sugerencia
Pruebe Data Factory en Microsoft Fabric, una solución de análisis integral para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y la creación de informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.
En este artículo se explica cómo usar la actividad de copia en una canalización de Azure Data Factory o Synapse Analytics para copiar datos de Hive. El documento se basa en el artículo de introducción a la actividad de copia que describe información general de la actividad de copia.
Importante
La versión 1.0 del conector de Hive está en fase de eliminación. Se recomienda actualizar el conector de Hive de la versión 1.0 a la 2.0.
Funcionalidades admitidas
Este conector Hive se admite para las siguientes características:
| Funcionalidades admitidas | IR |
|---|---|
| Actividad de copia (origen/-) | 1 2 |
| Flujo de datos de asignación (origen/-) | ① |
| Actividad de búsqueda | 1 2 |
① Azure Integration Runtime ② Entorno de ejecución de integración autohospedado
Consulte la tabla de almacenes de datos compatibles para ver una lista de almacenes de datos que la actividad de copia admite como orígenes o receptores.
El servicio proporciona un controlador integrado para habilitar la conectividad. Por lo tanto, no es necesario instalar manualmente ningún controlador mediante este conector.
El conector admite las versiones de Windows de este artículo.
Requisitos previos
Si el almacén de datos se encuentra en una red local, una red virtual de Azure o una nube privada virtual de Amazon, debe configurar un entorno de ejecución de integración autohospedado para conectarse a él.
Si el almacén de datos es un servicio de datos en la nube administrado, puede usar Azure Integration Runtime. Si el acceso está restringido a las direcciones IP que están aprobadas en las reglas de firewall, puede agregar direcciones IP de Azure Integration Runtime a la lista de permitidos.
También puede usar la característica del entorno de ejecución de integración de red virtual administrada de Azure Data Factory para acceder a la red local sin instalar ni configurar un entorno de ejecución de integración autohospedado.
Consulte Estrategias de acceso a datos para más información sobre los mecanismos de seguridad de red y las opciones que admite Data Factory.
Nota:
La versión 2.0 se admite con la versión 5.54 o posterior del entorno de ejecución de integración autohospedado.
Introducción
Para realizar la actividad de copia con una canalización, puede usar una de los siguientes herramientas o SDK:
- Herramienta Copiar datos
- Azure Portal
- SDK de .NET
- SDK de Python
- Azure PowerShell
- REST API
- Plantilla de Azure Resource Manager
Creación de un servicio vinculado a Hive mediante la interfaz de usuario
Siga estos pasos para crear un servicio vinculado a Hive en la interfaz de usuario de Azure Portal.
Vaya a la pestaña "Administrar" de su área de trabajo de Azure Data Factory o Synapse y seleccione "Servicios vinculados"; a continuación, haga clic en "Nuevo":
Busque Hive y seleccione el conector de Hive.
Configure los detalles del servicio, pruebe la conexión y cree el servicio vinculado.
Detalles de configuración del conector
En las secciones siguientes se proporcionan detalles sobre las propiedades que se usan para definir entidades de Data Factory específicas del conector de Hive.
Propiedades del servicio vinculado
El conector de Hive ahora admite la versión 2.0. Consulte esta sección para actualizar la versión del conector de Hive desde la versión 1.0. Para obtener los detalles de la propiedad, consulte las secciones correspondientes.
Versión 2.0
El servicio vinculado de Hive admite las siguientes propiedades cuando se aplica la versión 2.0:
| Propiedad | Descripción | Obligatorio |
|---|---|---|
| tipo | La propiedad type debe establecerse en: Hive | Sí |
| version | Versión que especifique. El valor es 2.0. |
Sí |
| anfitrión | Dirección IP o nombre de host del servidor de Hive. | Sí |
| puerto | Puerto TCP que el servidor de Hive utiliza para escuchar las conexiones del cliente. Si se conecta a Azure HDInsight, especifique el puerto 443. | Sí |
| tipo de servidor | Tipo de servidor de Hive. El valor permitido es: HiveServer2 |
No |
| thriftTransportProtocol | Protocolo de transporte que se va a usar en la capa de Thrift. Los valores permitidos son: Binary (Binario), SASL y HTTP |
No |
| Tipo de autenticación | Método de autenticación que se usa para tener acceso al servidor de Hive. Los valores permitidos son: Anonymous, UsernameAndPassword, WindowsAzureHDInsightService. Actualmente no se admite la autenticación de Kerberos. |
Sí |
| nombre de usuario | Nombre de usuario que utiliza para acceder al servidor de Hive. | No |
| contraseña | Contraseña que corresponde al usuario. Marque este campo como SecureString para almacenarlo de forma segura, o bien haga referencia a un secreto almacenado en Azure Key Vault. | No |
| httpPath | Dirección URL parcial correspondiente al servidor de Hive. Para el tipo de autenticación WindowsAzureHDInsightService, el valor predeterminado es /hive2. |
No |
| habilitarSsl | Especifica si las conexiones al servidor se cifran mediante TLS. El valor predeterminado es true. | No |
| enableServerCertificateValidation | Especifique si se va a habilitar la validación de certificados SSL de servidor al conectarse. Use siempre el Almacén de confianza del sistema. El valor predeterminado es true. | No |
| referencia de almacenamiento | Referencia al servicio vinculado de la cuenta de almacenamiento que se usa para el almacenamiento provisional de los datos en el flujo de datos de asignación. Esto solo es necesario cuando se usa el servicio vinculado de Hive en el flujo de datos de mapeo. | No |
| connectVia | El entorno Integration Runtime que se usará para conectarse al almacén de datos. Obtenga más información en la sección Requisitos previos. Si no se especifica, se usará Azure Integration Runtime. Puede usar el entorno de ejecución de integración autohospedado y su versión debe ser 5.54 o superior. | No |
Ejemplo:
{
"name": "HiveLinkedService",
"properties": {
"type": "Hive",
"version": "2.0",
"typeProperties": {
"host" : "<host>",
"port" : "<port>",
"authenticationType" : "WindowsAzureHDInsightService",
"username" : "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"serverType": "HiveServer2",
"thriftTransportProtocol": "HTTP",
"enableSsl": true,
"enableServerCertificateValidation": true
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Versión 1.0
Las siguientes propiedades son compatibles con el servicio vinculado de Hive cuando se aplica la versión 1.0:
| Propiedad | Descripción | Obligatorio |
|---|---|---|
| tipo | La propiedad type debe establecerse en: Hive | Sí |
| anfitrión | Dirección IP o nombre de host del servidor de Hive, separados por ";" para varios hosts (solo cuando serviceDiscoveryMode está habilitado). | Sí |
| puerto | Puerto TCP que el servidor de Hive utiliza para escuchar las conexiones del cliente. Si se conecta a Azure HDInsight, especifique el puerto 443. | Sí |
| tipo de servidor | Tipo de servidor de Hive. Los valores permitidos son: HiveServer1, HiveServer2 y HiveThriftServer. |
No |
| thriftTransportProtocol | Protocolo de transporte que se va a usar en la capa de Thrift. Los valores permitidos son: Binary (Binario), SASL y HTTP |
No |
| Tipo de autenticación | Método de autenticación que se usa para tener acceso al servidor de Hive. Los valores permitidos son: Anonymous, Username, UsernameAndPassword y WindowsAzureHDInsightService. Actualmente no se admite la autenticación de Kerberos. |
Sí |
| Modo de descubrimiento de servicios | True para indicar que se usa el servicio de ZooKeeper; false para indicar que no. | No |
| zooKeeperNameSpace | Espacio de nombres en ZooKeeper en el que se agregan nodos de Hive Server 2. | No |
| useNativeQuery | Especifica si el controlador usa las consultas nativas de HiveQL o las convierte en un formato equivalente en HiveQL. | No |
| nombre de usuario | Nombre de usuario que utiliza para acceder al servidor de Hive. | No |
| contraseña | Contraseña que corresponde al usuario. Marque este campo como SecureString para almacenarlo de forma segura, o bien haga referencia a un secreto almacenado en Azure Key Vault. | No |
| httpPath | Dirección URL parcial correspondiente al servidor de Hive. | No |
| habilitarSsl | Especifica si las conexiones al servidor se cifran mediante TLS. El valor predeterminado es false. | No |
| trustedCertPath | Ruta de acceso completa del archivo .pem que contiene certificados de CA de confianza para comprobar el servidor al conectarse a través de TLS. Esta propiedad solo puede establecerse al utilizar TLS en IR autohospedados. El valor predeterminado es el archivo cacerts.pem instalado con el IR. | No |
| useSystemTrustStore | Especifica si se utiliza un certificado de CA del almacén de confianza del sistema o de un archivo PEM especificado. El valor predeterminado es false. | No |
| allowHostNameCNMismatch | Especifica si se requiere que el nombre del certificado TLS/SSL emitido por una CA coincida con el nombre de host del servidor al conectarse a través de TLS. El valor predeterminado es false. | No |
| allowSelfSignedServerCert | Especifica si se permiten los certificados autofirmados del servidor. El valor predeterminado es false. | No |
| connectVia | El entorno Integration Runtime que se usará para conectarse al almacén de datos. Obtenga más información en la sección Requisitos previos. Si no se especifica, se usará Azure Integration Runtime. | No |
| referencia de almacenamiento | Referencia al servicio vinculado de la cuenta de almacenamiento que se usa para el almacenamiento provisional de los datos en el flujo de datos de asignación. Solo se necesita cuando se usa el servicio vinculado de Hive en el flujo de datos de asignación. | No |
Ejemplo:
{
"name": "HiveLinkedService",
"properties": {
"type": "Hive",
"typeProperties": {
"host" : "<cluster>.azurehdinsight.net",
"port" : "<port>",
"authenticationType" : "WindowsAzureHDInsightService",
"username" : "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
}
}
}
Propiedades del conjunto de datos
Si desea ver una lista completa de las secciones y propiedades disponibles para definir conjuntos de datos, consulte el artículo sobre conjuntos de datos. En esta sección se proporciona una lista de las propiedades compatibles con el conjunto de datos de Hive.
Para copiar datos de Hive, establezca la propiedad type del conjunto de datos en HiveObject. Se admiten las siguientes propiedades:
| Propiedad | Descripción | Obligatorio |
|---|---|---|
| tipo | La propiedad type del conjunto de datos se debe establecer en: HiveObject | Sí |
| esquema | Nombre del esquema. | No (si se especifica "query" en el origen de la actividad) |
| tabla | Nombre de la tabla. | No (si se especifica "query" en el origen de la actividad) |
| tableName | Nombre de la tabla que incluye la parte del esquema. Esta propiedad permite la compatibilidad con versiones anteriores. Para la nueva carga de trabajo use schema y table. |
No (si se especifica "query" en el origen de la actividad) |
Ejemplo
{
"name": "HiveDataset",
"properties": {
"type": "HiveObject",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<Hive linked service name>",
"type": "LinkedServiceReference"
}
}
}
Propiedades de la actividad de copia
Si desea ver una lista completa de las secciones y propiedades disponibles para definir actividades, consulte el artículo sobre canalizaciones. En esta sección se proporciona una lista de las propiedades compatibles con el origen de Hive.
HiveSource como origen
Para copiar datos de Hive, establezca el tipo de origen de la actividad de copia en HiveSource. Se admiten las siguientes propiedades en la sección source de la actividad de copia:
| Propiedad | Descripción | Obligatorio |
|---|---|---|
| tipo | La propiedad type del origen de la actividad de copia debe establecerse en: HiveSource. | Sí |
| Query | Use la consulta SQL personalizada para leer los datos. Por ejemplo: "SELECT * FROM MyTable". |
No (si se especifica "tableName" en el conjunto de datos) |
Ejemplo:
"activities":[
{
"name": "CopyFromHive",
"type": "Copy",
"inputs": [
{
"referenceName": "<Hive input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "HiveSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Propiedades de Asignación de instancias de Data Flow
El conector de Hive se admite como un origen de conjunto de datos en línea en los flujos de datos de asignación. Lea mediante una consulta o directamente desde una tabla de Hive en HDInsight. Los datos de Hive se almacenan provisionalmente en una cuenta de almacenamiento como archivos de Parquet antes de transformarse como parte de un flujo de datos.
Propiedades de origen
En la tabla siguiente se indican las propiedades que admite un origen de Hive. Puede editar estas propiedades en la pestaña Opciones del origen.
| Nombre | Descripción | Obligatorio | Valores permitidos | Propiedad de script de flujo de datos |
|---|---|---|---|---|
| Almacenamiento | Debe ser hive |
sí | hive |
store |
| Formato | Si está leyendo desde una tabla o una consulta | sí |
table o query |
formato |
| Nombre del esquema | Si está leyendo desde una tabla, el esquema de la tabla de origen | sí, si el formato es table |
Cuerda | nombreDelEsquema |
| Nombre de la tabla | Si está leyendo desde una tabla, el nombre de la tabla | sí, si el formato es table |
Cuerda | tableName |
| Consultar | Si el formato es query, la consulta de origen en el servicio vinculado de Hive |
sí, si el formato es query |
Cuerda | Query |
| Almacenado provisionalmente | La tabla de Hive siempre va a estar almacenada provisionalmente. | sí | true |
staged |
| Contenedor de almacenamiento | Contenedor de almacenamiento que se usa para almacenar provisionalmente los datos antes de leer desde Hive o escribir en Hive. El clúster de Hive debe tener acceso a este contenedor. | sí | Cuerda | contenedor de almacenamiento |
| Base de datos provisional | El esquema o la base de datos a los que tiene acceso la cuenta de usuario especificada en el servicio vinculado. Se usa para crear tablas externas durante el almacenamiento provisional y luego se elimina | no |
true o false |
stagingDatabaseName |
| Scripts de SQL previos | Código SQL que se va a ejecutar en la tabla de Hive antes de leer los datos | no | Cuerda | preSQLs |
Ejemplo de origen
A continuación se muestra un ejemplo de una configuración de origen de Hive:
Esta configuración se traduce en el siguiente script de flujo de datos:
source(
allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: false,
format: 'table',
store: 'hive',
schemaName: 'default',
tableName: 'hivesampletable',
staged: true,
storageContainer: 'khive',
storageFolderPath: '',
stagingDatabaseName: 'default') ~> hivesource
Restricciones conocidas
- No se admite la lectura de tipos complejos como matrices, asignaciones, structs y uniones.
- El conector de Hive solo admite tablas de Hive en Azure HDInsight de la versión 4.0 o posterior (Apache Hive 3.1.0)
- De forma predeterminada, el controlador de Hive proporciona "tableName.columnName" en el receptor. Si no quiere ver el nombre de la tabla en el nombre de columna, hay dos maneras de corregirlo. a) Compruebe el valor "hive.resultset.use.unique.column.names" en el lado del servidor de Hive y establézcalo en false. b. Use la asignación de columnas para cambiar el nombre de la columna.
Asignación de tipos de datos de Hive
Al copiar datos de y a Hive, se usan las siguientes asignaciones provisionales de tipos de datos dentro del servicio. Para más información acerca de la forma en que la actividad de copia asigna el tipo de datos y el esquema de origen al receptor, consulte el artículo sobre asignaciones de tipos de datos y esquema.
| Tipo de datos de Hive | Tipo de datos de servicio provisional (para la versión 2.0) | Tipo de datos de servicio provisional (para la versión 1.0) |
|---|---|---|
| TINYINT | Sbyte | Int16 |
| SMALLINT | Int16 | Int16 |
| INT | Int32 | Int32 |
| bigint | Int32 | Int64 |
| BOOLEAN | Boolean | Boolean |
| FLOAT | Soltero | Soltero |
| DOUBLE | Double | Double |
| DECIMAL | Decimal | Decimal Cadena (precisión > 28) |
| STRING | Cuerda | Cuerda |
| VARCHAR | Cuerda | Cuerda |
| CHAR | Cuerda | Cuerda |
| TIMESTAMP | DateTimeOffset | Fecha y hora |
| DATE | Fecha y hora | Fecha y hora |
| BINARY | Byte[] | Byte[] |
| ARRAY | Cuerda | Cuerda |
| MAPA | Cuerda | Cuerda |
| ESTRUCTURA | Cuerda | Cuerda |
Propiedades de la actividad de búsqueda
Para obtener información detallada sobre las propiedades, consulte Actividad de búsqueda.
Ciclo de vida y actualización del conector de Hive
En la tabla siguiente se muestran la fase de lanzamiento y los registros de cambios para diferentes versiones del conector de Hive:
| Versión | Fase de lanzamiento | Registro de cambios |
|---|---|---|
| Versión 1.0 | Quitado | No aplicable. |
| Versión 2.0 | Versión de disponibilidad general disponible | • La versión del entorno de ejecución de integración autohospedado debe ser 5.54 o superior. • enableServerCertificateValidation se admite. • El valor predeterminado de enableSSL es true. • Para el tipo de autenticación WindowsAzureHDInsightService, el valor predeterminado de httpPath es /hive2. • DECIMAL se lee como tipo de datos Decimal. • TINYINT se lee como tipo de datos SByte. • TIMESTAMP se lee como tipo de datos DateTimeOffset. • No se admiten trustedCertPath, useSystemTrustStore, allowHostNameCNMismatch ni allowSelfSignedServerCert. • No se admite el uso de ';' para separar varios hosts (solo cuando serviceDiscoveryMode está habilitado). • HiveServer1 y HiveThriftServer no son compatibles con ServerType. • No se admite el tipo de autenticación de nombre de usuario. El protocolo de transporte SASL solo admite el tipo de autenticación UsernameAndPassword. El protocolo de transporte binario solo admite el tipo de autenticación anónimo. • serviceDiscoveryMode, zooKeeperNameSpace y useNativeQuery no se admiten. |
Actualización del conector de Hive de la versión 1.0 a la versión 2.0
En la página Editar servicio vinculado , seleccione la versión 2.0 y configure el servicio vinculado haciendo referencia a las propiedades del servicio vinculado versión 2.0.
La asignación de tipos de datos para la versión 2.0 del servicio vinculado de Hive es diferente de la de la versión 1.0. Para obtener información sobre la asignación de tipos de datos más reciente, consulte Asignación de tipos de datos para Hive.
Aplique un entorno de ejecución de integración autohospedado con la versión 5.54 o posterior.
Contenido relacionado
Para obtener una lista de los almacenes de datos que admite la actividad de copia como orígenes y receptores, consulte Almacenes de datos compatibles.