Share via


Självstudie: Fråga Apache Hive med ODBC och PowerShell

Microsoft ODBC-drivrutiner är ett flexibelt sätt att interagera med olika typer av datakällor, inklusive Apache Hive. Du kan skriva kod på skriptspråk som PowerShell som använder ODBC-drivrutinerna för att öppna en anslutning till hive-klustret, skicka en fråga som du väljer och visa resultatet.

I den här självstudien utför du följande uppgifter:

  • Ladda ned och installera Microsoft Hive ODBC-drivrutinen
  • Skapa en Apache Hive ODBC-datakälla som är länkad till klustret
  • Fråga efter exempelinformation från klustret med hjälp av PowerShell

Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

Förutsättningar

Innan du börjar den här självstudiekursen behöver du följande:

Installera Microsoft Hive ODBC-drivrutin

Ladda ned och installera Microsoft Hive ODBC-drivrutinen.

Skapa Apache Hive ODBC-datakälla

Följande steg visar hur du skapar en Apache Hive ODBC-datakälla.

  1. Från Windows går du till Starta>Windows Administrationsverktyg>ODBC-datakällor (32-bitars)/(64-bitars). Ett ODBC-datakällsadministratörsfönster öppnas.

    OBDC data source administrator.

  2. På fliken Användar-DSN väljer du Lägg till för att öppna fönstret Skapa ny datakälla .

  3. Välj Microsoft Hive ODBC-drivrutin och välj sedan Slutför för att öppna DSN-installationsfönstret för Microsoft Hive ODBC-drivrutin .

  4. Ange eller välj följande värden:

    Property beskrivning
    Namn på datakälla Namnge din datakälla
    Värd(ar) Ange CLUSTERNAME.azurehdinsight.net. Till exempel: myHDICluster.azurehdinsight.net
    Port Använd 443.
    Databas Använd standardvärdet.
    Mekanism Välj Windows Azure HDInsight Service
    Användarnamn Ange http-användarens användarnamn för HDInsight-klustret. Standardanvändarnamnet är admin.
    Lösenord Ange användarlösenord för HDInsight-kluster. Markera kryssrutan Spara lösenord (krypterat).
  5. Valfritt: Välj Avancerade alternativ.

    Parameter Description
    Använda intern fråga När den är markerad försöker ODBC-drivrutinen INTE konvertera TSQL till HiveQL. Använd endast det här alternativet om du är 100 % säker på att du skickar rena HiveQL-instruktioner. När du ansluter till SQL Server eller Azure SQL Database bör du lämna det avmarkerat.
    Rader som hämtas per block När du hämtar ett stort antal poster kan du behöva justera den här parametern för att säkerställa optimala prestanda.
    Standardsträngskolumnlängd, Längd på binär kolumn, Decimalkolumnskalning Datatypens längd och precision kan påverka hur data returneras. De gör att felaktig information returneras på grund av förlust av precision och trunkering.

    Advanced DSN configuration options.

  6. Välj Testa för att testa datakällan. När datakällan är korrekt konfigurerad visar testresultatet SUCCESS.

  7. Välj OK för att stänga testfönstret.

  8. Välj OK för att stänga installationsfönstret för Microsoft Hive ODBC Driver DSN .

  9. Välj OK för att stänga fönstret ODBC-datakälladministratör .

Fråga efter data med PowerShell

Följande PowerShell-skript är en funktion som ODBC ska köra frågor mot ett Hive-kluster.

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
}

Följande kodfragment använder funktionen ovan för att köra en fråga i det Interaktiv fråga kluster som du skapade i början av självstudien. Ersätt DATASOURCENAME med det datakällnamn som du angav på installationsskärmen för Microsoft Hive ODBC-drivrutins-DSN . När du uppmanas att ange autentiseringsuppgifter anger du det användarnamn och lösenord som du angav under Användarnamn för klusterinloggning och Klusterinloggningslösenord när du skapade klustret.


$dsn = "DATASOURCENAME"

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

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

Rensa resurser

Ta bort resursgruppen, HDInsight-klustret och lagringskontot när det inte längre behövs. Det gör du genom att välja den resursgrupp där klustret skapades och klicka på Ta bort.

Nästa steg

I den här självstudien har du lärt dig hur du använder Microsoft Hive ODBC-drivrutinen och PowerShell för att hämta data från ditt Azure HDInsight-Interaktiv fråga kluster.