Gegevens uit Hive kopiëren en transformeren met behulp van Azure Data Factory

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

In dit artikel wordt beschreven hoe u de kopieeractiviteit in een Azure Data Factory- of Synapse Analytics-pijplijn gebruikt om gegevens uit Hive te kopiëren. Het is gebaseerd op het artikel over het overzicht van kopieeractiviteiten met een algemeen overzicht van de kopieeractiviteit.

Ondersteunde mogelijkheden

Deze Hive-connector wordt ondersteund voor de volgende mogelijkheden:

Ondersteunde mogelijkheden IR
Copy-activiteit (bron/-) ① ②
Toewijzingsgegevensstroom (bron/-)
Activiteit Lookup ① ②

(1) Azure Integration Runtime (2) Zelf-hostende Integration Runtime

Zie de tabel Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen/sinks door de kopieeractiviteit.

De service biedt een ingebouwd stuurprogramma om connectiviteit in te schakelen, daarom hoeft u geen stuurprogramma handmatig te installeren met behulp van deze connector.

Vereisten

Als uw gegevensarchief zich in een on-premises netwerk, een virtueel Azure-netwerk of een virtuele particuliere cloud van Amazon bevindt, moet u een zelf-hostende Integration Runtime configureren om er verbinding mee te maken.

Als uw gegevensarchief een beheerde cloudgegevensservice is, kunt u De Azure Integration Runtime gebruiken. Als de toegang is beperkt tot IP-adressen die zijn goedgekeurd in de firewallregels, kunt u IP-adressen van Azure Integration Runtime toevoegen aan de acceptatielijst.

U kunt ook de beheerde functie voor integratieruntime voor virtuele netwerken in Azure Data Factory gebruiken om toegang te krijgen tot het on-premises netwerk zonder een zelf-hostende Integration Runtime te installeren en te configureren.

Zie Strategieën voor gegevenstoegang voor meer informatie over de netwerkbeveiligingsmechanismen en -opties die door Data Factory worden ondersteund.

Aan de slag

Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:

Een gekoppelde service maken voor Hive met behulp van de gebruikersinterface

Gebruik de volgende stappen om een gekoppelde service te maken voor Hive in de gebruikersinterface van Azure Portal.

  1. Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:

  2. Zoek naar Hive en selecteer de Hive-connector.

    Select the Hive connector.

  3. Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.

    Configure a linked service to Hive.

configuratiedetails Verbinding maken or

De volgende secties bevatten details over eigenschappen die worden gebruikt voor het definiëren van Data Factory-entiteiten die specifiek zijn voor hive-connector.

Eigenschappen van gekoppelde service

De volgende eigenschappen worden ondersteund voor de gekoppelde Hive-service:

Eigenschappen Beschrijving Vereist
type De eigenschap type moet worden ingesteld op: Hive Ja
host IP-adres of hostnaam van de Hive-server, gescheiden door ';' voor meerdere hosts (alleen wanneer serviceDiscoveryMode is ingeschakeld). Ja
poort De TCP-poort die de Hive-server gebruikt om te luisteren naar clientverbindingen. Als u verbinding maakt met Azure HDInsight, geeft u poort op als 443. Ja
serverType Het type Hive-server.
Toegestane waarden zijn: HiveServer1, HiveServer2, HiveThriftServer
Nee
thriftTransportProtocol Het transportprotocol dat moet worden gebruikt in de Thrift-laag.
Toegestane waarden zijn: Binair, SASL, HTTP
Nee
authenticationType De verificatiemethode die wordt gebruikt voor toegang tot de Hive-server.
Toegestane waarden zijn: Anoniem, Gebruikersnaam, UsernameAndPassword, WindowsAzureHDInsightService. Kerberos-verificatie wordt nu niet ondersteund.
Ja
serviceDiscoveryMode waar om aan te geven dat de ZooKeeper-service wordt gebruikt, niet waar. Nee
zooKeeperNameSpace De naamruimte in ZooKeeper waaronder Hive Server 2-knooppunten worden toegevoegd. Nee
useNativeQuery Hiermee geeft u op of het stuurprogramma systeemeigen HiveQL-query's gebruikt of converteert naar een equivalente vorm in HiveQL. Nee
gebruikersnaam De gebruikersnaam die u gebruikt voor toegang tot Hive Server. Nee
password Het wachtwoord dat overeenkomt met de gebruiker. Markeer dit veld als SecureString om het veilig op te slaan of verwijs naar een geheim dat is opgeslagen in Azure Key Vault. Nee
httpPath De gedeeltelijke URL die overeenkomt met de Hive-server. Nee
enableSsl Hiermee geeft u op of de verbindingen met de server zijn versleuteld met behulp van TLS. De standaardwaarde is false. Nee
trustedCertPath Het volledige pad van het PEM-bestand met vertrouwde CA-certificaten voor het verifiëren van de server bij het maken van verbinding via TLS. Deze eigenschap kan alleen worden ingesteld wanneer u TLS gebruikt op zelf-hostende IR. De standaardwaarde is het cacerts.pem-bestand dat is geïnstalleerd met de IR. Nee
useSystemTrustStore Hiermee geeft u op of u een CA-certificaat uit het systeemvertrouwensarchief of een opgegeven PEM-bestand wilt gebruiken. De standaardwaarde is false. Nee
allowHostNameCNMismatch Hiermee geeft u op of een door een CA uitgegeven TLS/SSL-certificaatnaam moet overeenkomen met de hostnaam van de server bij het maken van verbinding via TLS. De standaardwaarde is false. Nee
allowSelfSignedServerCert Hiermee geeft u op of zelfondertekende certificaten van de server moeten worden toegestaan. De standaardwaarde is false. Nee
connectVia De Integration Runtime die moet worden gebruikt om verbinding te maken met het gegevensarchief. Meer informatie vindt u in de sectie Vereisten . Als dit niet is opgegeven, wordt de standaard Azure Integration Runtime gebruikt. Nee
storageReference Een verwijzing naar de gekoppelde service van het opslagaccount dat wordt gebruikt voor het faseren van gegevens in de toewijzingsgegevensstroom. Dit is alleen vereist wanneer u de gekoppelde Hive-service gebruikt in de toewijzingsgegevensstroom Nee

Voorbeeld:

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

Eigenschappen van gegevensset

Zie het artikel gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets . Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de Hive-gegevensset.

Als u gegevens uit Hive wilt kopiëren, stelt u de typeeigenschap van de gegevensset in op HiveObject. De volgende eigenschappen worden ondersteund:

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de gegevensset moet worden ingesteld op: HiveObject Ja
schema Naam van het schema. Nee (als 'query' in de activiteitsbron is opgegeven)
table Naam van de tabel. Nee (als 'query' in de activiteitsbron is opgegeven)
tableName Naam van de tabel, inclusief schemaonderdeel. Deze eigenschap wordt ondersteund voor compatibiliteit met eerdere versies. Voor nieuwe workload gebruikt schema u en table. Nee (als 'query' in de activiteitsbron is opgegeven)

Voorbeeld

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

Eigenschappen van de kopieeractiviteit

Zie het artikel Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de Hive-bron.

HiveSource als bron

Als u gegevens uit Hive wilt kopiëren, stelt u het brontype in de kopieeractiviteit in op HiveSource. De volgende eigenschappen worden ondersteund in de sectie bron van kopieeractiviteit:

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op: HiveSource Ja
query Gebruik de aangepaste SQL-query om gegevens te lezen. Voorbeeld: "SELECT * FROM MyTable". Nee (als 'tableName' in de gegevensset is opgegeven)

Voorbeeld:

"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>"
            }
        }
    }
]

Eigenschappen van toewijzingsgegevensstroom

De Hive-connector wordt ondersteund als een inline gegevenssetbron in toewijzingsgegevensstromen. Lees met behulp van een query of rechtstreeks vanuit een Hive-tabel in HDInsight. Hive-gegevens worden gefaseerd in een opslagaccount als parquet-bestanden voordat ze worden getransformeerd als onderdeel van een gegevensstroom.

Broneigenschappen

De onderstaande tabel bevat de eigenschappen die worden ondersteund door een hive-bron. U kunt deze eigenschappen bewerken op het tabblad Bronopties .

Name Beschrijving Vereist Toegestane waarden Eigenschap gegevensstroomscript
Opslaan Store moet zijn hive ja hive opslaan
Indeling Of u nu uit een tabel of query leest ja table of query indeling
Schemanaam Als u uit een tabel leest, wordt het schema van de brontabel Ja, als de notatie is table String schemaName
Tabelnaam Als u uit een tabel leest, wordt de tabelnaam Ja, als de notatie is table String tableName
Query’s uitvoeren Als de indeling is query, wordt de bronquery op de gekoppelde Hive-service Ja, als de notatie is query String query
Gefaseerd De Hive-tabel wordt altijd gefaseerd. ja true gefaseerd
Opslagcontainer Opslagcontainer die wordt gebruikt om gegevens te faseren voordat ze vanuit Hive worden gelezen of naar Hive worden geschreven. Het Hive-cluster moet toegang hebben tot deze container. ja String storageContainer
Faseringsdatabase Het schema/de database waar het gebruikersaccount dat is opgegeven in de gekoppelde service toegang heeft. Het wordt gebruikt om externe tabellen te maken tijdens fasering en daarna verwijderd nee true of false stagingDatabaseName
Pre SQL-scripts SQL-code die moet worden uitgevoerd op de Hive-tabel voordat u de gegevens leest nee String preSQLs

Bronvoorbeeld

Hieronder ziet u een voorbeeld van een Hive-bronconfiguratie:

Hive source example

Deze instellingen worden omgezet in het volgende gegevensstroomscript:

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

Bekende beperkingen

  • Complexe typen, zoals matrices, kaarten, structs en samenvoegingen, worden niet ondersteund voor lezen.
  • Hive-connector ondersteunt alleen Hive-tabellen in Azure HDInsight van versie 4.0 of hoger (Apache Hive 3.1.0)
  • Het Hive-stuurprogramma biedt standaard 'tableName.columnName' in sink. Als u de tabelnaam niet in de kolomnaam wilt zien, kunt u dit op twee manieren oplossen. a. Controleer de instelling 'hive.resultset.use.unique.column.names' in de Hive-server en stel deze in op false. b. Gebruik kolomtoewijzing om de naam van de kolom te wijzigen.

Eigenschappen van opzoekactiviteit

Als u meer wilt weten over de eigenschappen, controleert u de lookup-activiteit.

Zie ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.