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
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.
No Windows, navegue até Iniciar>Fontes de Dados ODBC das Ferramentas>Administrativas do Windows (32 bits)/(64 bits). Uma janela ODBC Data Source Administrator é aberta.
Na guia DSN do usuário, selecione Adicionar para abrir a janela Criar nova fonte de dados.
Selecione Driver ODBC do Microsoft Hive e, em seguida, selecione Concluir para abrir a janela Configuração DSN do driver ODBC do Microsoft Hive.
Escreva ou selecione os seguintes valores:
Property Description Nome da Origem de Dados Atribua um nome para a sua origem de dados Aanfitrião(ões) Introduzir CLUSTERNAME.azurehdinsight.net
. Por exemplo,myHDICluster.azurehdinsight.net
Porta Utilize 443. Base de Dados Use o padrão. 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). Opcional: Selecione Opções avançadas.
Parâmetro Description 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 buscadas 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 da cadeia de caracteres padrão, comprimento da coluna binária, escala da coluna decimal 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 devolvidas devido à perda de precisão e truncamento. Selecione Testar para testar a fonte de dados. Quando a fonte de dados está configurada corretamente, o resultado do teste mostra SUCCESS.
Selecione OK para fechar a janela Teste.
Selecione OK para fechar a janela Configuração DSN do driver ODBC do Microsoft Hive.
Selecione OK para fechar a janela Administrador da Fonte de Dados ODBC .
Consultar dados com o PowerShell
O script PowerShell a seguir é uma função que 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 especificado na tela Instalaçã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
Clean up resources (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.