Delen via


ETL-pijplijnen migreren naar Azure Databricks

Dit artikel bevat een overzicht van opties voor het migreren van ETL-pijplijnen (extract, transform, load) die worden uitgevoerd op andere gegevenssystemen naar Azure Databricks. Als u Apache Spark-code migreert, raadpleegt u Uw bestaande Apache Spark-code aanpassen voor Azure Databricks.

Zie Uw datawarehouse migreren naar het Databricks Lakehouse voor algemene informatie over het overstappen van een datawarehouse naar een lakehouse voor ondernemingen. Zie Een Parquet-data lake migreren naar Delta Lake voor meer informatie over het overstappen van Parquet naar Delta Lake.

Kunt u Hive-pijplijnen uitvoeren in Azure Databricks?

De meeste Hive-workloads kunnen worden uitgevoerd op Azure Databricks met minimale herstructurering. De versie van Spark SQL die wordt ondersteund door Databricks Runtime maakt veel HiveQL-constructies mogelijk. Zie de compatibiliteit met Apache Hive. Azure Databricks bevat standaard een Hive-metastore. De meeste Hive-migraties moeten enkele belangrijke problemen aanpakken:

  • Hive SerDe moet worden bijgewerkt om systeemeigen bestandscodecs van Azure Databricks te kunnen gebruiken. (Wijzig DDL van STORED AS in USING Azure Databricks SerDe om te gebruiken.)
  • Hive UDF's moeten worden geïnstalleerd in clusters als bibliotheken of worden geherstructureerd naar systeemeigen Spark. Omdat Hive UDF's zich al in de JVM bevinden, bieden ze mogelijk voldoende prestaties voor veel workloads. Zie welke UDF's het efficiëntst zijn?
  • De mapstructuur voor tabellen moet worden gewijzigd, omdat Azure Databricks partities anders gebruikt dan Hive. Zie Wanneer tabellen te partitioneren in Azure Databricks.

Als u ervoor kiest om uw tabellen tijdens de eerste migratie bij te werken naar Delta Lake, worden een aantal DDL- en DML-instructies niet ondersteund. Deze omvatten:

  • ROWFORMAT
  • SERDE
  • OUTPUTFORMAT
  • INPUTFORMAT
  • COMPRESSION
  • STORED AS
  • ANALYZE TABLE PARTITION
  • ALTER TABLE [ADD|DROP] PARTITION
  • ALTER TABLE RECOVER PARTITIONS
  • ALTER TABLE SET SERDEPROPERTIES
  • CREATE TABLE LIKE
  • INSERT OVERWRITE DIRECTORY
  • LOAD DATA
  • Doelpartities opgeven met behulp van PARTITION (part_spec) in TRUNCATE TABLE

Kunt u SQL ETL-pijplijnen uitvoeren in Azure Databricks?

Het migreren van SQL-workloads van andere systemen naar Azure Databricks vereist meestal zeer weinig herstructurering, afhankelijk van de mate waarin systeemspecifieke protocollen in de broncode zijn gebruikt. Azure Databricks maakt gebruik van Delta Lake als standaardtabelindeling, zodat tabellen standaard worden gemaakt met transactionele garanties .

Spark SQL is voornamelijk compatibel met ANSI, maar er zijn mogelijk enkele verschillen in gedrag. Zie hoe het Databricks Data Intelligence Platform verschilt van een datawarehouse voor ondernemingen.

Omdat gegevenssystemen de toegang tot externe gegevens vaak anders configureren, is het mogelijk dat veel van de werkstructurerende SQL ETL-pijplijnen de toegang tot deze gegevensbronnen configureren en vervolgens uw logica bijwerken om deze nieuwe verbindingen te gebruiken. Azure Databricks biedt opties voor het maken van verbinding met veel gegevensbronnen voor opname.

Kunt u dbt ETL-pijplijnen uitvoeren in Azure Databricks?

Azure Databricks biedt een systeemeigen integratie met dbt, zodat u bestaande dbt-scripts kunt gebruiken met zeer weinig herstructurering.

Delta Live Tables biedt een geoptimaliseerde declaratieve SQL-syntaxis voor databricks voor het maken, testen en implementeren van pijplijnen. Hoewel u dbt in Azure Databricks kunt gebruiken, kan een lichte herstructurering van code voor Delta Live Tables uw totale kosten verlagen om uw pijplijnen in Azure Databricks te gebruiken. Zie Wat is Delta Live Tables?

Kunt u serverloze cloudfuncties migreren naar Azure Databricks?

De uitbreidbaarheid en veelzijdigheid van aangepaste serverloze cloudfuncties maakt het lastig om een algemene aanbeveling te bieden, maar een van de meest voorkomende use cases voor deze functies wacht tot bestanden of gegevens worden weergegeven in een locatie of berichtenwachtrij en vervolgens een actie uitvoert als gevolg hiervan. Hoewel Azure Databricks geen complexe logica ondersteunt voor het activeren van workloads op basis van cloudvoorwaarden, kunt u Structured Streaming gebruiken in combinatie met werkstromen om gegevens incrementeel te verwerken.

Gebruik Automatisch laden voor geoptimaliseerde gegevensopname van cloudobjectopslag. Gestructureerd streamen kan gegevens uit streamingbronnen in bijna realtime verwerken.

Kunt u syntaxis uitvoeren vanuit andere gegevenssystemen in Azure Databricks?

ETL-pijplijnen die zijn gedefinieerd in andere talen dan SQL, Apache Spark of Hive, moeten mogelijk sterk worden geherstructureerd voordat ze worden uitgevoerd in Azure Databricks. Azure Databricks heeft ervaring met het migreren van klanten van de meeste gegevenssystemen die momenteel worden gebruikt, en heeft mogelijk resources die beschikbaar zijn om snel aan de slag te gaan met uw migratie-inspanningen.