Zelfstudie: Query uitvoeren op Apache Hive met ODBC en PowerShell

Microsoft ODBC-stuurprogramma's bieden een flexibele manier om te communiceren met verschillende soorten gegevensbronnen, met inbegrip van Apache Hive. U kunt code schrijven in scripttalen zoals PowerShell die de ODBC-stuurprogramma's gebruiken om een verbinding met uw Hive-cluster te openen, een query van uw keuze door te geven en de resultaten weer te geven.

In deze zelfstudie gaat u de volgende taken uitvoeren:

  • Het Microsoft Hive ODBC-stuurprogramma downloaden en installeren
  • Een Apache Hive ODBC-gegevensbron maken die aan uw cluster is gekoppeld
  • Query's uitvoeren op voorbeeldgegevens uit uw cluster met PowerShell

Als u nog geen abonnement op Azure hebt, maakt u een gratis account aan voordat u begint.

Vereisten

Voordat u met deze zelfstudie begint, moet u beschikken over de volgende items:

Microsoft Hive ODBC-stuurprogramma installeren

Download en installeer het Microsoft Hive ODBC-stuurprogramma.

Apache Hive ODBC-gegevensbron maken

De volgende stappen laten zien hoe u een Apache Hive ODBC-gegevensbron maakt.

  1. Ga vanuit Windows naar Start>Windows-beheertools>ODBC-gegevensbronnen (32-bits)/(64-bits). Een venster ODBC-gegevensbronbeheerder wordt geopend.

    OBDC data source administrator.

  2. Op het tabblad gebruikers-DSN selecteert u Toevoegen om het venster Nieuwe gegevensbron maken te openen.

  3. Selecteer Microsoft Hive ODBC-stuurprogramma en selecteer vervolgens Voltooien om het venster DSN-installatie van Microsoft Hive ODBC-stuurprogramma te openen.

  4. Typ of selecteer de volgende waarden:

    Eigenschappen Beschrijving
    Naam van de gegevensbron Geef uw gegevensbron een naam
    Host(s) Voer CLUSTERNAME.azurehdinsight.net in. Bijvoorbeeld myHDICluster.azurehdinsight.net
    Poort Gebruik 443.
    Database Gebruik standaard.
    Mechanisme Selecteer Windows Azure HDInsight Service
    Gebruikersnaam Voer de gebruikersnaam van de HTTP-gebruiker van het HDInsight-cluster in. De standaardgebruikersnaam is admin.
    Wachtwoord Voer het gebruikerswachtwoord voor het HDInsight-cluster in. Schakel het selectievakje Wachtwoord opslaan (versleuteld) in.
  5. Optioneel: Selecteer Geavanceerde opties.

    Parameter Description
    Systeemeigen query gebruiken Wanneer het ODBC-stuurprogramma is geselecteerd, probeert het NIET TSQL te converteren naar HiveQL. Gebruik deze optie alleen als u 100% zeker weet dat u zuivere HiveQL-instructies verzendt. Wanneer u verbinding maakt met SQL Server of Azure SQL Database, moet u het selectievakje uitgeschakeld laten.
    Opgehaalde rijen per blok Bij het ophalen van een groot aantal records is het afstemmen van deze parameter mogelijk vereist om te zorgen voor optimale prestaties.
    Standaardlengte van een tekenreekskolom, binaire kolomlengte, decimale kolomschaal De lengten en precisie van het gegevenstype kunnen van invloed zijn op hoe gegevens worden geretourneerd. Ze leiden ertoe dat onjuiste gegevens worden geretourneerd vanwege verlies van precisie en afbrekingen.

    Advanced DSN configuration options.

  6. Selecteer Testen om de gegevensbron te testen. Wanneer de gegevensbron op de juiste wijze is geconfigureerd, geven de testresultaten GESLAAGD weer.

  7. Selecteer OK om het testvenster te sluiten.

  8. Selecteer OK om het venster DSN-installatie van Microsoft Hive ODBC-stuurprogramma te sluiten.

  9. Selecteer OK om het venster ODBC-gegevensbronbeheerder te sluiten.

Query's uitvoeren op gegevens met PowerShell

Het volgende PowerShell-script is een functie die door ODBC kan worden gebruikt om query's uit te voeren op een Hive-cluster.

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
}

In het volgende codefragment wordt de bovenstaande functie gebruikt om een query uit te voeren op het Interactive Query-cluster dat u aan het begin van de zelfstudie hebt gemaakt. Vervang DATASOURCENAME door de Gegevensbronnaam die u hebt opgegeven in het scherm DSN-installatie van Microsoft Hive ODBC-stuurprogramma. Wanneer u om referenties wordt gevraagd, voert u de gebruikersnaam en het wachtwoord in die u hebt ingevoerd onder Gebruikersnaam voor aanmelden bij cluster en Wachtwoord voor aanmelden bij cluster toen u het cluster maakte.


$dsn = "DATASOURCENAME"

$query = "select count(distinct clientid) AS total_clients from hivesampletable"

Get-ODBC-Data -query $query -dsn $dsn

Resources opschonen

Verwijder de resourcegroep, het HDInsight-cluster en het opslagaccount wanneer u deze niet meer nodig hebt. Als u dit wilt doen, selecteert u de resourcegroep waarin het cluster is gemaakt en klikt u op Verwijderen.

Volgende stappen

In deze zelfstudie hebt u geleerd hoe u het Microsoft Hive ODBC-stuurprogramma en PowerShell kunt gebruiken om gegevens op te halen uit uw Azure HDInsight Interactive Query-cluster.