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/-) | (1) (2) |
Toewijzingsgegevensstroom (bron/-) | (1) |
Activiteit Lookup | (1) (2) |
(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.
De connector ondersteunt de Windows-versies in dit artikel.
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:
- Het hulpprogramma voor het kopiëren van gegevens
- Azure Portal
- De .NET-SDK
- De Python-SDK
- Azure PowerShell
- De REST API
- Een Azure Resource Manager-sjabloon
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.
Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en klik vervolgens op Nieuw:
Zoek naar Hive en selecteer de Hive-connector.
Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.
Configuratiedetails van connector
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 |
Notatie | 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 | 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 |
geënsceneerd |
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:
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.
Gerelateerde inhoud
Zie ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die worden ondersteund als bronnen en sinks door de kopieeractiviteit.