Partilhar via


Tutorial: Consultar o Apache Hive com ODBC e PowerShell

Os drivers ODBC da Microsoft fornecem uma maneira flexível de interagir com diferentes tipos de fontes de dados, incluindo o Apache Hive. Você pode escrever código em linguagens de script como o PowerShell que usam os drivers ODBC para abrir uma conexão com seu cluster do Hive, passar uma consulta de sua escolha e exibir os resultados.

Neste tutorial, você fará as seguintes tarefas:

  • Baixe e instale o driver ODBC do Microsoft Hive
  • Criar uma fonte de dados ODBC do Apache Hive vinculada ao cluster
  • Consultar informações de exemplo do cluster usando o PowerShell

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Antes de começar este tutorial, tem de ter os seguintes itens:

  • Um cluster de Consulta Interativa no HDInsight. Para criar um, consulte Introdução ao Azure HDInsight. Selecione Consulta Interativa como o tipo de cluster.

Instalar o driver ODBC do Microsoft Hive

Observação

O driver ODBC do Microsoft Hive não é mais suportado com o HDInsight e deve ser descontinuado.

Baixe e instale o driver ODBC do Microsoft Hive.

Criar fonte de dados ODBC do Apache Hive

As etapas a seguir mostram como criar uma fonte de dados ODBC do Apache Hive.

  1. No Windows, navegue até Iniciar>Ferramentas Administrativas do Windows>Fontes de Dados ODBC (32 bits)/(64 bits). Uma janela ODBC Data Source Administrator é aberta.

    Administrador de fonte de dados ODBC.

  2. Na guia DSN do usuário, selecione Adicionar para abrir a janela Criar nova fonte de dados.

  3. Selecione Microsoft Hive ODBC Driver, e, em seguida, selecione Concluir para abrir a janela Configuração DSN do Microsoft Hive ODBC Driver.

  4. Escreva ou selecione os seguintes valores:

    Propriedade Descrição
    Nome da Origem de Dados Atribua um nome para a sua origem de dados
    Aanfitrião(ões) Introduza CLUSTERNAME.azurehdinsight.net. Por exemplo, myHDICluster.azurehdinsight.net
    Porto Utilize 443.
    Base de Dados Use predefinido.
    Mecanismo Selecione o Serviço HDInsight do Windows Azure
    Nome de Utilizador Insira o nome de usuário HTTP do cluster HDInsight. O nome de usuário padrão é admin.
    Palavra-passe Introduza a palavra-passe de utilizador do cluster HDInsight. Marque a caixa de seleção Salvar senha (criptografada).
  5. Opcional: Selecione Opções avançadas.

    Parâmetro Descrição
    Usar consulta nativa Quando é selecionado, o driver ODBC NÃO tenta converter TSQL em HiveQL. Use esta opção somente se tiver 100% de certeza de que está enviando declarações HiveQL puras. Ao se conectar ao SQL Server ou ao Banco de Dados SQL do Azure, você deve deixá-lo desmarcado.
    Linhas obtidas por bloco Ao buscar um grande número de registros, o ajuste desse parâmetro pode ser necessário para garantir desempenhos ideais.
    Comprimento da coluna de texto padrão, comprimento da coluna binária, escala decimal da coluna Os comprimentos e as precisões do tipo de dados podem afetar a forma como os dados são retornados. Eles fazem com que informações incorretas sejam retornadas devido à perda de precisão e truncamento.

    Opções avançadas de configuração de DSN.

  6. Selecione Testar para testar a fonte de dados. Quando a fonte de dados está configurada corretamente, o resultado do teste mostra SUCCESS.

  7. Selecione OK para fechar a janela Teste.

  8. Selecione OK para fechar a janela Microsoft Hive ODBC Driver DSN Setup.

  9. Selecione OK para fechar a janela Administrador da Fonte de Dados ODBC .

Consultar dados com o PowerShell

O seguinte script PowerShell é uma função que utiliza ODBC para consultar um 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
}

O trecho de código a seguir usa a função acima para executar uma consulta no cluster de Consulta Interativa que você criou no início do tutorial. Substitua DATASOURCENAME pelo Nome da Fonte de Dados que especificou no ecrã de configuração DSN do Driver ODBC do Microsoft Hive. Quando as credenciais forem solicitadas, insira o nome de usuário e a senha que você inseriu em Nome de usuário de login do cluster e Senha de login do cluster quando criou o cluster.


$dsn = "DATASOURCENAME"

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

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

Limpar recursos

Quando não for mais necessário, exclua o grupo de recursos, o cluster HDInsight e a conta de armazenamento. Para fazer isso, selecione o grupo de recursos onde o cluster foi criado e clique em Excluir.

Próximos passos

Neste tutorial, você aprendeu como usar o driver ODBC do Microsoft Hive e o PowerShell para recuperar dados do cluster de Consulta Interativa do Azure HDInsight.