Compartilhar via


Copiar e transformar dados do Hive usando o Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!

Este artigo descreve como usar a atividade de cópia nos pipelines do Azure Data Factory ou do Azure Synapse Analytics para copiar dados de uma tabela do Hive. Ele amplia o artigo Visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.

Importante

O conector do Hive versão 2.0 (versão prévia) oferece suporte nativo ao Hive aprimorado. Se você estiver usando o conector Hive versão 1.0 na sua solução, atualize o conector do Hive antes de 30 de setembro de 2025. Consulte esta seção para obter detalhes sobre a diferença entre a versão 2.0 (versão prévia) e a versão 1.0.

Funcionalidades com suporte

Há suporte a este conector do Hive para as seguintes funcionalidades:

Funcionalidades com suporte Imposto de Renda
Atividade de cópia (origem/-) (1) (2)
Fluxo de dados de mapeamento (origem/-) (1)
Atividade de pesquisa (1) (2)

① Runtime de integração do Azure ② Runtime de integração auto-hospedada

Para obter uma lista de armazenamentos de dados com suporte como origens/coletores da atividade de cópia, confira a tabela Armazenamentos de dados com suporte.

O serviço fornece um driver interno para habilitar a conectividade, portanto, não é necessário instalar manualmente qualquer driver usando esse conector.

O conector dá suporte às versões do Windows incluídas nesse artigo.

Pré-requisitos

Se o armazenamento de dados estiver localizado dentro de uma rede local, em uma rede virtual do Azure ou na Amazon Virtual Private Cloud, você precisará configurar um runtime de integração auto-hospedada para se conectar a ele.

Se o armazenamento de dados for um serviço de dados de nuvem gerenciado, você poderá usar o Azure Integration Runtime. Se o acesso for restrito aos IPs que estão aprovados nas regras de firewall, você poderá adicionar IPs do Azure Integration Runtime à lista de permissões.

Você também pode usar o recurso de runtime de integração da rede virtual gerenciada no Azure Data Factory para acessar a rede local sem instalar e configurar um runtime de integração auto-hospedada.

Para obter mais informações sobre os mecanismos de segurança de rede e as opções compatíveis com o Data Factory, consulte Estratégias de acesso a dados.

Introdução

Para executar a atividade de Cópia com um pipeline, será possível usar as ferramentas ou os SDKs abaixo:

Criar um serviço vinculado para o Hive usando a interface do usuário

Use as etapas a seguir para criar um serviço vinculado para o Hive na interface do usuário do portal do Azure.

  1. Navegue até a guia Gerenciar no workspace do Azure Data Factory ou do Synapse, selecione Serviços Vinculados e clique em Novo:

  2. Procure Hive e selecione o conector do Hive.

    Selecionar o conector do Hive.

  3. Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.

    Configurar um serviço vinculado para o Hive.

Detalhes da configuração do conector

As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades do Data Factory específicas ao conector de Hive.

Propriedades do serviço vinculado

O conector do Hive agora dá suporte à versão 2.0 (versão prévia). Consulte esta seção para atualizar a versão do conector do Hive da versão 1.0. Para obter detalhes sobre as propriedades, consulte as seções correspondentes.

Versão 2.0 (versão prévia)

O serviço vinculado do Hive dá suporte às seguintes propriedades ao aplicar a versão 2.0 (versão prévia):

Propriedade Descrição Obrigatório
tipo A propriedade type deve ser definida como: Hive Sim
versão A versão que você especifica. O valor é 2.0. Sim
anfitrião Endereço IP ou nome do host do servidor Hive. Sim
porta A porta TCP usada pelo servidor Hive para ouvir conexões de cliente. Se você se conectar ao Azure HDInsight, especifique a porta como 443. Sim
tipo de servidor O tipo do servidor Hive.
O valor permitido é: HiveServer2
Não
thriftTransportProtocol O protocolo de transporte a ser usado na camada de Thrift.
O valor permitido é: Binary, SASL, HTTP
Não
tipoDeAutenticação O método de autenticação usado para acessar o servidor do Hive.
Os valores permitidos são: Anonymous, UsernameAndPassword, WindowsAzureHDInsightService. Não há suporte para a autenticação baseada em Kerberos agora.
Sim
Nome de Usuário O nome de usuário que você usa para acessar o servidor do Hive. Não
senha A senha correspondente ao usuário. Marque este campo como um SecureString para armazená-lo com segurança ou referencie um segredo armazenado no Azure Key Vault. Não
Caminho http A URL parcial correspondente ao servidor do Hive. Não
ativarSsl Especifica se as conexões com o servidor são criptografadas via TLS. O valor padrão é true. Não
AtivarValidaçãoDeCertificadoDoServidor Especifique se deseja habilitar a validação do certificado SSL do servidor ao se conectar. Sempre usar o Repositório confiável do Sistema. O valor padrão é true. Não
storageReference Uma referência ao serviço vinculado da conta de armazenamento usada para preparar dados no fluxo de dados de mapeamento. Isso é necessário somente ao usar o serviço vinculado do Hive no fluxo de dados de mapeamento. Não
connectVia O Integration Runtime a ser usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos. Se não for especificado, ele usa o Integration Runtime padrão do Azure. Não

Exemplo:

{
    "name": "HiveLinkedService",
    "properties": {
        "type": "Hive",
        "version": "2.0",
        "typeProperties": {
            "host" : "<host>",
            "port" : "<port>",
            "authenticationType" : "WindowsAzureHDInsightService",
            "username" : "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "serverType": "HiveServer2",
            "thriftTransportProtocol": "HTTP",
            "enableSsl": true,
            "enableServerCertificateValidation": true
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Versão 1.0

As propriedades a seguir têm suporte para o serviço vinculado do Hive ao aplicar a versão 1.0:

Propriedade Descrição Obrigatório
tipo A propriedade type deve ser definida como: Hive Sim
anfitrião Endereço IP ou nome de host do servidor Hive, separado por ';' para vários hosts (somente quando serviceDiscoveryMode estiver habilitado). Sim
porta A porta TCP usada pelo servidor Hive para ouvir conexões de cliente. Se você se conectar ao Azure HDInsight, especifique a porta como 443. Sim
tipo de servidor O tipo do servidor Hive.
Os valores permitidos são: HiveServer1, HiveServer2, HiveThriftServer
Não
thriftTransportProtocol O protocolo de transporte a ser usado na camada de Thrift.
Os valores permitidos são: Binário, SASL, HTTP
Não
tipoDeAutenticação O método de autenticação usado para acessar o servidor do Hive.
Valores permitidos são: Anônimo, Username, UsernameAndPassword, WindowsAzureHDInsightService. Não há suporte para a autenticação baseada em Kerberos agora.
Sim
Modo de descoberta de serviço verdadeiro para indicar o uso do serviço ZooKeeper, falso não. Não
zooKeeperNameSpace O namespace no ZooKeeper no qual os2 nós do Hive Server são adicionados. Não
useNativeQuery Especifica se o driver usa consultas HiveQL nativas ou as converte em uma forma equivalente no HiveQL. Não
Nome de Usuário O nome de usuário que você usa para acessar o servidor do Hive. Não
senha A senha correspondente ao usuário. Marque este campo como um SecureString para armazená-lo com segurança ou referencie um segredo armazenado no Azure Key Vault. Não
Caminho http A URL parcial correspondente ao servidor do Hive. Não
ativarSsl Especifica se as conexões com o servidor são criptografadas via TLS. O valor padrão é false. Não
trustedCertPath O caminho completo do arquivo .pem que contém certificados de AC confiáveis para verificar o servidor ao se conectar via TLS. Essa propriedade só pode ser definida ao usar o TLS em IR auto-hospedado. O valor padrão é o arquivo de cacerts.pem instalado com o IR. Não
useSystemTrustStore Especifica se deve usar um certificado de autoridade de certificação do repositório de confiança de sistema ou de um arquivo PEM especificado. O valor padrão é false. Não
allowHostNameCNMismatch Especifica se é necessário o nome do certificado TLS/SSL emitido pela AC para corresponder ao nome de host do servidor ao se conectar via TLS. O valor padrão é false. Não
allowSelfSignedServerCert Especifica se deve permitir os certificados autoassinados do servidor. O valor padrão é false. Não
connectVia O Integration Runtime a ser usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos. Se não for especificado, ele usa o Integration Runtime padrão do Azure. Não
storageReference Uma referência ao serviço vinculado da conta de armazenamento usada para preparar dados no fluxo de dados de mapeamento. Isso é necessário somente ao usar o serviço vinculado do Hive no fluxo de dados de mapeamento Não

Exemplo:

{
    "name": "HiveLinkedService",
    "properties": {
        "type": "Hive",
        "typeProperties": {
            "host" : "<cluster>.azurehdinsight.net",
            "port" : "<port>",
            "authenticationType" : "WindowsAzureHDInsightService",
            "username" : "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        }
    }
}

Propriedades do conjunto de dados

Para obter uma lista completa das seções e propriedades disponíveis para definir os conjuntos de dados, confira o artigo sobre conjuntos de dados. Esta seção fornece uma lista das propriedades com suporte pelo conjunto de dados de HTTP.

Para copiar dados de Hive, defina a propriedade type do conjunto de dados como HiveObject. Há suporte para as seguintes propriedades:

Propriedade Descrição Obrigatório
tipo A propriedade type do conjunto de dados precisa ser definida como: HiveObject Sim
esquema Nome do esquema. Não (se "query" na fonte da atividade for especificada)
tabela Nome da tabela. Não (se "query" na fonte da atividade for especificada)
nome da tabela O nome da tabela, incluindo a parte do esquema. Essa propriedade é compatível com versões anteriores. Para uma nova carga de trabalho, use schema e table. Não (se "query" na fonte da atividade for especificada)

Exemplo

{
    "name": "HiveDataset",
    "properties": {
        "type": "HiveObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Hive linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Propriedades da atividade de cópia

Para obter uma lista completa das seções e propriedades disponíveis para definir atividades, confia o artigo Pipelines. Esta seção fornece uma lista das propriedades com suporte pela fonte Hive.

HiveSource como fonte

Para copiar dados de Hive, defina o tipo de fonte na atividade de cópia como HiveSource. As propriedades a seguir têm suporte na seção source da atividade de cópia:

Propriedade Descrição Obrigatório
tipo A propriedade type da fonte da atividade de cópia deve ser definida como: HiveSource Sim
Consulta Utiliza a consulta SQL personalizada para ler os dados. Por exemplo: "SELECT * FROM MyTable". Não (se "tableName" no conjunto de dados for especificado)

Exemplo:

"activities":[
    {
        "name": "CopyFromHive",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Hive input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "HiveSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Propriedades do fluxo de dados de mapeamento

Há suporte para o conector do hive como uma fonte de conjunto de dados embutida no fluxo de dados de mapeamento. Leia usando uma consulta ou diretamente de uma tabela Hive no HDInsight. Os dados do Hive são preparados em uma conta de armazenamento como arquivos parquet antes de serem transformados como parte de um fluxo de dados.

Propriedades da Origem

A tabela abaixo lista as propriedades com suporte por uma fonte hive. Você pode editar essas propriedades na guia Opções de origem.

Nome Descrição Obrigatório Valores permitidos Propriedade do script do Fluxo de Dados
Repositório O repositório deve ser hive sim hive loja
Formatar Se você está lendo de uma tabela ou consulta sim table ou query formato
Nome do esquema Se estiver lendo de uma tabela, o esquema da tabela de origem Sim, se o formato for table Cadeia de caracteres nomeDoEsquema
Nome da tabela Se estiver lendo de uma tabela, o nome da tabela Sim, se o formato for table Cadeia de caracteres nome da tabela
Consulta Se o formato for query, a consulta de origem no serviço vinculado do Hive Sim, se o formato for query Cadeia de caracteres Consulta
Em fases. A tabela do Hive sempre será preparada. sim true em fases
Contêiner de armazenamento Contêiner de armazenamento usado para preparar dados antes de ler do hive ou gravar no Hive. O cluster do hive deve ter acesso a esse contêiner. sim Cadeia de caracteres recipiente de armazenamento
Banco de Dados de Preparação: O esquema/banco de dados ao qual a conta de usuário especificada no serviço vinculado tem acesso. Ela é usada para criar tabelas externas durante o preparo e descartadas posteriormente não true ou false stagingDatabaseName
Scripts anteriores do SQL Código SQL a ser executado na tabela Hive antes de ler os dados não Cadeia de caracteres preSQLs

Exemplo de fonte

Veja abaixo um exemplo de uma configuração de origem do Hive:

Exemplo de origem do Hive

Essas configurações se traduzem no seguinte script de fluxo de dados:

source(
    allowSchemaDrift: true,
    validateSchema: false,
    ignoreNoFilesFound: false,
    format: 'table',
    store: 'hive',
    schemaName: 'default',
    tableName: 'hivesampletable',
    staged: true,
    storageContainer: 'khive',
    storageFolderPath: '',
    stagingDatabaseName: 'default') ~> hivesource

Limitações conhecidas

  • Tipos complexos, como matrizes, mapas, structs e uniões, não têm suporte para leitura.
  • O conector do Hive dá suporte apenas a tabelas hive Azure HDInsight versão 4.0 ou superior (Apache Hive 3.1.0)
  • Por padrão, o driver do Hive fornece "tableName.columnName" no coletor. Se você não quiser ver o nome da tabela no nome da coluna, há duas maneiras de corrigir isso. um. Verifique a configuração "hive.resultset.use.unique.column.names" no lado do servidor Hive e defina-a como false. b. Use o mapeamento de coluna para renomear o nome da coluna.

Mapeamento de tipo de dados para Hive

Quando você copia dados de e para o Hive, os seguintes mapeamentos de tipo de dados provisórios são usados dentro do serviço. Para saber mais sobre como a atividade Copy mapeia o tipo de dados e esquema de origem para o coletor, consulte Mapeamentos de tipo de dados e esquema.

Tipo de dados do Hive Tipo de dados de serviço provisório (para a versão 2.0 (versão prévia)) Tipo de dados de serviço provisório (para a versão 1.0)
TINYINT Sbyte Int16
SMALLINT Int16 Int16
INT Int32 Int32
bigint Int32 Int64
BOOLEANO Booliano Booliano
FLUTUAR Único Único
DOBRAR Dobrar Duplo
DECIMAL Decimal Decimal
CORDA Cadeia de caracteres Cadeia de caracteres
VARCHAR Cadeia de caracteres Cadeia de caracteres
QUEIMAR Cadeia de caracteres Cadeia de caracteres
TIMESTAMP DateTimeOffset (representa uma data e hora com um desvio em relação ao horário UTC) Data e Hora
DATA Data e Hora Data e Hora
BINÁRIO Byte[] Byte[]
ARRAY Cadeia de caracteres Cadeia de caracteres
Mapa Cadeia de caracteres Cadeia de caracteres
ESTRUTURA Cadeia de caracteres Cadeia de caracteres

Pesquisar propriedades de atividade

Para saber detalhes sobre as propriedades, verifique Pesquisar atividade.

Atualizar o conector do Hive

Aqui estão as etapas que ajudam você a atualizar o conector do Hive:

  1. Na página Editar serviço vinculado , selecione a versão 2.0 (Versão prévia) e configure o serviço vinculado referindo-se às propriedades do serviço vinculado versão 2.0.

  2. O mapeamento de tipo de dados para o serviço vinculado do Hive versão 2.0 (versão prévia) é diferente do da versão 1.0. Para saber mais sobre o mapeamento de tipo de dados mais recente, consulte Mapeamento de tipo de dados para Hive.

Diferenças entre o Hive versão 2.0 (versão prévia) e a versão 1.0

O conector Hive versão 2.0 (Prévia) oferece novas funcionalidades e é compatível com a maioria dos recursos da versão 1.0. A tabela a seguir mostra as diferenças de recursos entre a versão 2.0 (versão prévia) e a versão 1.0.

Versão 2.0 (versão prévia) Versão 1.0
Não há suporte para o uso de ';' para separar vários hosts (somente quando serviceDiscoveryMode está habilitado). Há suporte para o uso de ';' para separar vários hosts (somente quando serviceDiscoveryMode está habilitado).
Não há suporte para HiveServer1 e HiveThriftServer no ServerType. Suporte para HiveServer1 e HiveThriftServer para ServerType.
Não há suporte para o tipo de autenticação de nome de usuário.

O protocolo de transporte SASL dá suporte apenas ao tipo de autenticação UsernameAndPassword. O protocolo de transporte binário dá suporte apenas ao tipo de autenticação anônima.
Suporte ao tipo de autenticação via nome de usuário.

Os protocolos de transporte SASL e o protocolo Binário dão suporte aos tipos de autenticação Anônimo, Nome de Usuário, Nome de Usuário e Senha e WindowsAzureHDInsightService.
serviceDiscoveryModee zooKeeperNameSpaceuseNativeQuery não há suporte. serviceDiscoveryMode, zooKeeperNameSpace, useNativeQuery são suportados.
O valor padrão é enableSSL true. trustedCertPath useSystemTrustStore, allowHostNameCNMismatche allowSelfSignedServerCert não há suporte.

enableServerCertificateValidation é compatível.
O valor enableSSL padrão é false. trustedCertPath useSystemTrustStore, allowHostNameCNMismatche allowSelfSignedServerCert têm suporte.

Não há suporte para enableServerCertificateValidation.
Os seguintes mapeamentos são usados dos tipos de dados do Hive para o tipo de dado de serviço intermediário.

TINYINT – SByte >
TIMESTAMP – DateTimeOffset >
Os seguintes mapeamentos são usados dos tipos de dados do Hive para o tipo de dado de serviço intermediário.

TINYINT – Int16 >
TIMESTAMP –> DateTime

Para obter uma lista de armazenamentos de dados com suporte como coletores e fontes da atividade de cópia, confira os armazenamentos de dados com suporte.