Tutorial: Consulta de Apache Hive con ODBC y PowerShell
Los controladores ODBC de Microsoft proporcionan una manera flexible de interactuar con distintos tipos de orígenes de datos, como Apache Hive. Puede escribir código en lenguajes de scripting como PowerShell que utilizan los controladores ODBC para abrir una conexión con el clúster de Hive, pasar una consulta de su elección y mostrar los resultados.
En este tutorial, realizará las tareas siguientes:
- Descargar e instalar Microsoft Hive ODBC Driver
- Crear un origen de datos ODBC de Apache Hive vinculado al clúster
- Consultar la información de ejemplo desde el clúster mediante PowerShell
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Prerrequisitos
Antes de empezar este tutorial, debe contar con lo siguiente:
- Un clúster de Interactive Query en HDInsight. Para crear uno, vea Introducción a HDInsight de Azure. Seleccione Interactive Query como el tipo de clúster.
Instalación de Microsoft Hive ODBC Driver
Descargue e instale Microsoft Hive ODBC Driver.
Creación de un origen de datos de Apache Hive ODBC
En los siguientes pasos se explica cómo crear un origen de datos ODBC de Apache Hive.
En Windows, vaya a Inicio>Herramientas administrativas de Windows>Orígenes de datos ODBC (32 bits)/(64 bits) . Se abre la ventana Administrador de orígenes de datos ODBC.
Desde la pestaña DSN del usuario, seleccione Agregar para abrir la ventana Crear nuevo origen de datos.
Seleccione Microsoft Hive ODBC Driver y, luego, seleccione Finalizar para abrir la ventana Microsoft Hive ODBC Driver DSN Setup (Configuración de DSN de Microsoft Hive ODBC Driver).
Escriba o seleccione los valores siguientes:
Propiedad Descripción Data Source Name Asigne un nombre al origen de datos Host(s) Escriba CLUSTERNAME.azurehdinsight.net
. Por ejemplo:myHDICluster.azurehdinsight.net
Port Use 443. Base de datos Use el valor predeterminado. Mechanism Seleccione Servicio HDInsight de Microsoft Azure. Nombre de usuario Escriba el nombre de usuario HTTP del clúster de HDInsight. El nombre de usuario predeterminado es admin
.Contraseña Escriba la contraseña del usuario del clúster de HDInsight. Seleccione la casilla Save Password (Encrypted) [Guardar contraseña (cifrada)]. Opcional: Seleccione Opciones avanzadas
Parámetro Descripción Use Native Query Cuando esta opción está seleccionada, el controlador ODBC NO trata de convertir TSQL en HiveQL. Utilice esta opción solo si está 100 % seguro de que está enviando instrucciones HiveQL puras. Al conectarse a SQL Server o a Azure SQL Database, debe dejar esta opción desactivada. Rows fetched per block Al capturar un gran volumen de registros, es posible que sea necesario ajustar este parámetro para garantizar un rendimiento óptimo. Default string column length, Binary column length, Decimal column scale La longitud y precisión del tipo de datos pueden afectar a la forma en que se devuelven los datos. Pueden dar lugar a que se devuelva información incorrecta debido a la pérdida de precisión o al truncamiento. Seleccione Probar para probar el origen de datos. Cuando el origen de datos esté configurado correctamente, el resultado de la prueba mostrará SUCCESS (Correcto).
Seleccione Aceptar para cerrar la ventana Probar.
Seleccione Aceptar para cerrar la ventana Microsoft Hive ODBC Driver DSN Setup.
Seleccione Aceptar para cerrar la ventana Administrador de orígenes de datos ODBC.
Consulta de datos con PowerShell
El siguiente script de PowerShell es una función que utiliza ODBC para consultar un clúster de Hive.
function Get-ODBC-Data {
param(
[string]$query=$(throw 'query is required.'),
[string]$dsn,
[PSCredential] $cred = (Get-Credential)
)
$conn = New-Object System.Data.Odbc.OdbcConnection
$uname = $cred.UserName
$pswd = (New-Object System.Net.NetworkCredential -ArgumentList "", $cred.Password).Password
$conn.ConnectionString = "DSN=$dsn;Uid=$uname;Pwd=$pswd;"
$conn.open()
$cmd = New-object System.Data.Odbc.OdbcCommand($query,$conn)
$ds = New-Object system.Data.DataSet
(New-Object system.Data.odbc.odbcDataAdapter($cmd)).fill($ds) #| out-null
$conn.close()
$ds.Tables
}
El siguiente fragmento de código utiliza la función anterior para ejecutar una consulta en el clúster de Interactive Query que creó al principio del tutorial. Reemplace DATASOURCENAME
por el nombre del origen de datos que especificó en la pantalla de configuración de DNS de Microsoft Hive ODBC Driver. Cuando se le soliciten las credenciales, escriba el nombre de usuario y la contraseña que especificó en Nombre de usuario de inicio de sesión del clústery Contraseña de inicio de sesión del clúster cuando creó el clúster.
$dsn = "DATASOURCENAME"
$query = "select count(distinct clientid) AS total_clients from hivesampletable"
Get-ODBC-Data -query $query -dsn $dsn
Limpieza de recursos
Cuando ya no los necesite, elimine el grupo de recursos, el clúster de HDInsight y la cuenta de almacenamiento. Para ello, seleccione el grupo de recursos donde se creó el clúster y haga clic en Eliminar.
Pasos siguientes
En este tutorial, ha aprendido a usar Microsoft Hive ODBC Driver y PowerShell para recuperar datos desde el clúster de Interactive Query de Azure HDInsight.