Copiar e transformar dados do hive usando o Azure Data FactoryCopy and transform data from Hive using Azure Data Factory
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:
- Atividade de cópia com matriz de fonte/coletor com suporteCopy activity with supported source/sink matrix
- Atividade de pesquisaLookup activity
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:
- A ferramenta Copiar DadosThe Copy Data tool
- O portal do AzureThe Azure portal
- O SDK do .NETThe .NET SDK
- O SDK do PythonThe Python SDK
- PowerShell do AzureAzure PowerShell
- A API RESTThe REST API
- O modelo do Azure Resource ManagerThe Azure Resource Manager template
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 hive Store 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 query table 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 table yes, 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 table yes, 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 query yes, 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 false true 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:
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.