Copiar e transformar dados do hive usando o Azure Data FactoryCopy and transform data from Hive using Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Este artigo descreve como usar a atividade de cópia no Azure Data Factory para copiar dados de e para o Hive.This article outlines how to use the Copy Activity in Azure Data Factory to copy data from Hive. Ele amplia o artigo Visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.It builds on the copy activity overview article that presents a general overview of copy activity.

Funcionalidades com suporteSupported capabilities

Este conector do hive tem suporte para as seguintes atividades:This Hive connector is supported for the following activities:

Você pode copiar dados de um Hive para qualquer armazenamento de dados de coletor com suporte.You can copy data from Hive to any supported sink data store. 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.For a list of data stores that are supported as sources/sinks by the copy activity, see the Supported data stores table.

Azure Data Factory fornece um driver interno para habilitar a conectividade, portanto, não é necessário instalar manualmente qualquer driver usando esse conector.Azure Data Factory provides a built-in driver to enable connectivity, therefore you don't need to manually install any driver using this connector.

Pré-requisitosPrerequisites

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.If your data store is located inside an on-premises network, an Azure virtual network, or Amazon Virtual Private Cloud, you need to configure a self-hosted integration runtime to connect to it.

Por outro lado, se o armazenamento de dados for um serviço de dados de nuvem gerenciado, você poderá usar o Azure Integration Runtime.Alternatively, if your data store is a managed cloud data service, you can use 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.If the access is restricted to IPs that are approved in the firewall rules, you can add Azure Integration Runtime IPs into the allow list.

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.For more information about the network security mechanisms and options supported by Data Factory, see Data access strategies.

IntroduçãoGetting started

Para executar a atividade de Cópia com um pipeline, será possível usar as ferramentas ou os SDKs abaixo:To perform the Copy activity with a pipeline, you can use one of the following tools or SDKs:

As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades do Data Factory específicas ao conector de Hive.The following sections provide details about properties that are used to define Data Factory entities specific to Hive connector.

Propriedades do serviço vinculadoLinked service properties

As propriedades a seguir têm suporte para o serviço vinculado de Hive:The following properties are supported for Hive linked service:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade type deve ser definida como: HiveThe type property must be set to: Hive SimYes
hosthost Endereço IP ou nome do host do servidor Hive, separados por '; ' para vários hosts (somente quando o Service DiscoveryMode está habilitado).IP address or host name of the Hive server, separated by ';' for multiple hosts (only when serviceDiscoveryMode is enabled). SimYes
portaport A porta TCP usada pelo servidor Hive para ouvir conexões de cliente.The TCP port that the Hive server uses to listen for client connections. Se você conectar ao Microsoft Azure HDInsights, especifique a porta como 443.If you connect to Azure HDInsights, specify port as 443. SimYes
serverTypeserverType O tipo do servidor Hive.The type of Hive server.
Os valores permitidos são: HiveServer1, HiveServer2, HiveThriftServerAllowed values are: HiveServer1, HiveServer2, HiveThriftServer
NãoNo
thriftTransportProtocolthriftTransportProtocol O protocolo de transporte a ser usado na camada de Thrift.The transport protocol to use in the Thrift layer.
Os valores permitidos são: Binário, SASL, HTTPAllowed values are: Binary, SASL, HTTP
NãoNo
authenticationTypeauthenticationType O método de autenticação usado para acessar o servidor do Hive.The authentication method used to access the Hive server.
Os valores permitidos são: Anonymous, username, UsernameAndPassword, WindowsAzureHDInsightService.Allowed values are: Anonymous, Username, UsernameAndPassword, WindowsAzureHDInsightService. Não há suporte para a autenticação Kerberos agora.Kerberos authentication is not supported now.
SimYes
serviceDiscoveryModeserviceDiscoveryMode verdadeiro para indicar o uso do serviço ZooKeeper, falso não.true to indicate using the ZooKeeper service, false not. NãoNo
zooKeeperNameSpacezooKeeperNameSpace O namespace no ZooKeeper no qual os2 nós do Hive Server são adicionados.The namespace on ZooKeeper under which Hive Server 2 nodes are added. NãoNo
useNativeQueryuseNativeQuery Especifica se o driver usa consultas HiveQL nativas ou as converte em um formato equivalente em HiveQL.Specifies whether the driver uses native HiveQL queries, or converts them into an equivalent form in HiveQL. NãoNo
Nome de Usuáriousername O nome de usuário que você usa para acessar o servidor do Hive.The user name that you use to access Hive Server. NãoNo
passwordpassword A senha correspondente ao usuário.The password corresponding to the user. Marque este campo como uma SecureString para armazená-la com segurança no Data Factory ou faça referência a um segredo armazenado no Azure Key Vault.Mark this field as a SecureString to store it securely in Data Factory, or reference a secret stored in Azure Key Vault. NãoNo
httpPathhttpPath A URL parcial correspondente ao servidor do Hive.The partial URL corresponding to the Hive server. NãoNo
enableSslenableSsl Especifica se as conexões com o servidor são criptografadas usando TLS.Specifies whether the connections to the server are encrypted using TLS. O valor padrão é false.The default value is false. NãoNo
trustedCertPathtrustedCertPath O caminho completo do arquivo. pem que contém certificados de AC confiáveis para verificar o servidor ao se conectar via TLS.The full path of the .pem file containing trusted CA certificates for verifying the server when connecting over TLS. Essa propriedade só pode ser definida ao usar TLS no IR auto-hospedado.This property can only be set when using TLS on self-hosted IR. O valor padrão é o arquivo de cacerts.pem instalado com o IR.The default value is the cacerts.pem file installed with the IR. NãoNo
useSystemTrustStoreuseSystemTrustStore 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.Specifies whether to use a CA certificate from the system trust store or from a specified PEM file. O valor padrão é false.The default value is false. NãoNo
allowHostNameCNMismatchallowHostNameCNMismatch Especifica se deve ser necessário um nome de certificado TLS/SSL emitido pela autoridade de certificação para corresponder ao nome de host do servidor ao se conectar por TLS.Specifies whether to require a CA-issued TLS/SSL certificate name to match the host name of the server when connecting over TLS. O valor padrão é false.The default value is false. NãoNo
allowSelfSignedServerCertallowSelfSignedServerCert Especifica se deve permitir os certificados autoassinados do servidor.Specifies whether to allow self-signed certificates from the server. O valor padrão é false.The default value is false. NãoNo
connectViaconnectVia O Integration Runtime a ser usado para se conectar ao armazenamento de dados.The Integration Runtime to be used to connect to the data store. Saiba mais na seção Pré-requisitos.Learn more from Prerequisites section. Se não for especificado, ele usa o Integration Runtime padrão do Azure.If not specified, it uses the default Azure Integration Runtime. NãoNo
storageReferencestorageReference Uma referência ao serviço vinculado da conta de armazenamento usada para preparar dados no fluxo de dados de mapeamento.A reference to the linked service of the storage account used for staging data in mapping data flow. Isso é necessário somente ao usar o serviço vinculado do hive no fluxo de dados de mapeamentoThis is required only when using the Hive linked service in mapping data flow NãoNo

Exemplo:Example:

{
    "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 dadosDataset properties

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.For a full list of sections and properties available for defining datasets, see the datasets article. Esta seção fornece uma lista das propriedades com suporte pelo conjunto de dados de HTTP.This section provides a list of properties supported by Hive dataset.

Para copiar dados de Hive, defina a propriedade type do conjunto de dados como HiveObject.To copy data from Hive, set the type property of the dataset to HiveObject. Há suporte para as seguintes propriedades:The following properties are supported:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type do conjunto de conjuntos deve ser definida como: hiveobjectThe type property of the dataset must be set to: HiveObject SimYes
esquemaschema Nome do esquema.Name of the schema. Não (se "query" na fonte da atividade for especificada)No (if "query" in activity source is specified)
tabelatable Nome da tabela.Name of the table. Não (se "query" na fonte da atividade for especificada)No (if "query" in activity source is specified)
tableNametableName Nome da tabela, incluindo a parte do esquema.Name of the table including schema part. Essa propriedade é compatível com versões anteriores.This property is supported for backward compatibility. Para uma nova carga de trabalho, use schema e table.For new workload, use schema and table. Não (se "query" na fonte da atividade for especificada)No (if "query" in activity source is specified)

ExemploExample

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

Propriedades da atividade de cópiaCopy activity properties

Para obter uma lista completa das seções e propriedades disponíveis para definir atividades, confia o artigo Pipelines.For a full list of sections and properties available for defining activities, see the Pipelines article. Esta seção fornece uma lista das propriedades com suporte pela fonte Hive.This section provides a list of properties supported by Hive source.

HiveSource como fonteHiveSource as source

Para copiar dados de Hive, defina o tipo de fonte na atividade de cópia como HiveSource.To copy data from Hive, set the source type in the copy activity to HiveSource. As propriedades a seguir têm suporte na seção source da atividade de cópia:The following properties are supported in the copy activity source section:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade type da fonte da atividade de cópia deve ser definida como: HiveSourceThe type property of the copy activity source must be set to: HiveSource SimYes
Consultaquery Utiliza a consulta SQL personalizada para ler os dados.Use the custom SQL query to read data. Por exemplo: "SELECT * FROM MyTable".For example: "SELECT * FROM MyTable". Não (se "tableName" no conjunto de dados for especificado)No (if "tableName" in dataset is specified)

Exemplo:Example:

"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 mapeamentoMapping data flow properties

Há suporte para o conector do hive como uma fonte de conjunto de dados embutida no mapeamento de fluxos.The hive connector is supported as an inline dataset source in mapping data flows. Leia usando uma consulta ou diretamente de uma tabela Hive no HDInsight.Read using a query or directly from a Hive table in 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.Hive data gets staged in a storage account as parquet files before getting transformed as part of a data flow.

Propriedades de origemSource properties

A tabela abaixo lista as propriedades com suporte por uma origem do hive.The below table lists the properties supported by a hive source. Você pode editar essas propriedades na guia Opções de origem .You can edit these properties in the Source options tab.

NomeName DescriçãoDescription ObrigatórioRequired Valores permitidosAllowed values Propriedade de script de fluxo de dadosData flow script property
RepositórioStore O repositório deve ser hiveStore must be hive yesyes hive storestore
FormatarFormat Se você está lendo de uma tabela ou consultaWhether you are reading from a table or query yesyes table ou querytable or query formatformat
Nome do esquemaSchema name Se estiver lendo de uma tabela, o esquema da tabela de origemIf reading from a table, the schema of the source table Sim, se o formato for tableyes, if format is table Cadeia de caracteresString schemaNameschemaName
Nome da tabelaTable name Se estiver lendo de uma tabela, o nome da tabelaIf reading from a table, the table name Sim, se o formato for tableyes, if format is table Cadeia de caracteresString tableNametableName
ConsultaQuery Se o formato for query , a consulta de origem no serviço vinculado do hiveIf format is query, the source query on the Hive linked service Sim, se o formato for queryyes, if format is query Cadeia de caracteresString Consultaquery
Em etapasStaged A tabela do hive sempre será preparada.Hive table will always be staged. yesyes true em etapasstaged
Contêiner de armazenamentoStorage Container Contêiner de armazenamento usado para preparar dados antes de ler do hive ou gravar no hive.Storage container used to stage data before reading from Hive or writing to Hive. O cluster do hive deve ter acesso a esse contêiner.The hive cluster must have access to this container. yesyes Cadeia de caracteresString storageContainerstorageContainer
Banco de dados de preparoStaging database O esquema/banco de dados ao qual a conta de usuário especificada no serviço vinculado tem acesso.The schema/database where the user account specified in the linked service has access to. Ela é usada para criar tabelas externas durante o preparo e descartadas posteriormenteIt is used to create external tables during staging and dropped afterwards nono true ou falsetrue or false stagingDatabaseNamestagingDatabaseName
Scripts anteriores do SQLPre SQL Scripts Código SQL a ser executado na tabela Hive antes de ler os dadosSQL code to run on the Hive table before reading the data nono Cadeia de caracteresString preSQLspreSQLs

Exemplo de origemSource example

Veja abaixo um exemplo de configuração de origem do hive:Below is an example of a Hive source configuration:

Exemplo de origem do hiveHive source example

Essas configurações são traduzidas para o seguinte script de fluxo de dados:These settings translate into the following data flow script:

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 conhecidasKnown limitations

  • Tipos complexos, como matrizes, mapas, structs e uniões, não têm suporte para leitura.Complex types such as arrays, maps, structs, and unions are not supported for read.
  • O conector do hive só dá suporte a tabelas Hive no Azure HDInsight da versão 4,0 ou superior (Apache Hive 3.1.0)Hive connector only supports Hive tables in Azure HDInsight of version 4.0 or greater (Apache Hive 3.1.0)

Pesquisar propriedades de atividadeLookup activity properties

Para saber detalhes sobre as propriedades, verifique Pesquisar atividade.To learn details about the properties, check Lookup activity.

Próximas etapasNext steps

Para obter uma lista de armazenamentos de dados com suporte como origens e coletores pela atividade de cópia no Azure Data Factory, consulte Armazenamentos de dados com suporte.For a list of data stores supported as sources and sinks by the copy activity in Azure Data Factory, see supported data stores.