Esercitazione: Eseguire query su Apache Hive con ODBC e PowerShell
I driver ODBC di Microsoft rappresentano un modo flessibile per interagire con tipi diversi di origini dati, tra cui Apache Hive. È possibile scrivere codice in linguaggi di script, ad esempio PowerShell, che usano i driver ODBC per stabilire una connessione al cluster Hive, passare la query desiderata e visualizzare i risultati.
In questa esercitazione si eseguiranno le attività seguenti:
- Scaricare e installare Microsoft Hive ODBC Driver
- Creare un'origine dati ODBC Apache Hive collegata al cluster
- Eseguire query su informazioni di esempio dal cluster tramite PowerShell
Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Prerequisiti
Prima di iniziare questa esercitazione sono necessari gli elementi seguenti:
- Un cluster Interactive Query in HDInsight. Per crearne uno, vedere Introduzione all'uso di Hadoop in HDInsight. Selezionare Interactive Query come tipo di cluster.
Installare Microsoft Hive ODBC driver
Scaricare e installare Microsoft Hive ODBC driver.
Creare un'origine dati Apache Hive ODBC
I passaggi seguenti descrivono come creare un'origine dati ODBC Apache Hive.
In Windows scegliere Start>Strumenti di amministrazione Windows>Configura origini dati ODBC (32 bit)/(64 bit). Verrà aperta la finestra Amministrazione origine dati ODBC.
Nella scheda DSN utente selezionare Aggiungi per aprire la finestra Crea nuova origine dati.
Selezionare Microsoft Hive ODBC Driver e quindi selezionare Fine per aprire la finestra di configurazione del DSN per Microsoft Hive ODBC Driver.
Digitare o selezionare i valori seguenti:
Proprietà Descrizione Nome origine dati Assegnare un nome all'origine dati Host Immetti CLUSTERNAME.azurehdinsight.net
. Ad esempio,myHDICluster.azurehdinsight.net
Porta Utilizzare 443. Database Usare l'impostazione predefinita. Meccanismo Selezionare Servizio HDInsight di Microsoft Azure Nome utente Immettere il nome utente HTTP del cluster HDInsight. Il nome utente predefinito è admin
.Password Immettere la password utente del cluster HDInsight. Selezionare la casella di controllo Save Password (Encrypted) (Salva password (crittografata)). Facoltativo: selezionare Opzioni avanzate.
Parametro Descrizione Use Native Query Quando è selezionato, il driver ODBC NON cerca di convertire TSQL in HiveQL. Usare questa opzione solo se sussiste la massima sicurezza che si stanno inviando istruzioni HiveQL pure. Quando ci si connette al database SQL di Azure o SQL Server, è consigliabile lasciarlo deselezionato. Rows fetched per block Quando si recupera un numero elevato di record, potrebbe essere necessario ottimizzare questo parametro per assicurare prestazioni ottimali. Default string column length, Binary column length, Decimal column scale Le lunghezze e le precisioni del tipo di dati potrebbero avere effetto sulla visualizzazione dei dati. In questo caso verranno restituite informazioni non corrette a causa della perdita di precisione e dei troncamenti. Selezionare Test per testare l'origine dati. Se l'origine dati è configurata correttamente, come risultato del test è indicato OPERAZIONE RIUSCITA.
Selezionare OK per chiudere la finestra Test.
Selezionare OK per chiudere la finestra di configurazione del DSN per Microsoft Hive ODBC Driver.
Selezionare OK per chiudere la finestra Amministratore origine dati ODBC.
Eseguire query sui dati con PowerShell
Lo script PowerShell seguente è una funzione che usa ODBC per eseguire query in un cluster 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
}
Il frammento di codice seguente usa la funzione precedente per eseguire una query sul cluster Interactive Query creato all'inizio dell'esercitazione. Sostituire DATASOURCENAME
con il valore di Nome origine dati specificato nella schermata Microsoft Hive ODBC Driver DSN Setup (Configurazione DSN Microsoft Hive ODBC Driver). Quando vengono richieste le credenziali, immettere il nome utente e la password specificati in Nome utente dell'account di accesso del cluster e in Password dell'account di accesso del cluster al momento della creazione del cluster.
$dsn = "DATASOURCENAME"
$query = "select count(distinct clientid) AS total_clients from hivesampletable"
Get-ODBC-Data -query $query -dsn $dsn
Pulire le risorse
Quando non sono più necessari, eliminare il gruppo di risorse, il cluster HDInsight e l'account di archiviazione. A tale scopo, selezionare il gruppo di risorse in cui è stato creato il cluster e fare clic su Elimina.
Passaggi successivi
In questa esercitazione si è appreso come usare Microsoft Hive ODBC Driver e PowerShell per recuperare dati dal cluster Interactive Query di Azure HDInsight.