다음을 통해 공유


ETL 파이프라인을 Azure Databricks로 마이그레이션

이 문서에서는 다른 데이터 시스템에서 실행되는 ETL(추출, 변환, 로드) 파이프라인을 Azure Databricks로 마이그레이션하는 옵션에 대한 개요를 제공합니다. Apache Spark 코드를 마이그레이션하는 경우 Azure Databricks에 대한 기존 Apache Spark 코드 조정을 참조 하세요.

엔터프라이즈 데이터 웨어하우스에서 레이크하우스로 이동하는 방법에 대한 일반적인 내용은 데이터 웨어하우스를 Databricks Lakehouse로 마이그레이션을 참조하세요. Parquet에서 Delta Lake로 이동하는 방법에 대한 자세한 내용은 Parquet 데이터 레이크를 Delta Lake로 마이그레이션을 참조하세요.

Azure Databricks에서 Hive 파이프라인을 실행할 수 있나요?

대부분의 Hive 워크로드는 리팩터링을 최소화하면서 Azure Databricks에서 실행할 수 있습니다. Databricks Runtime에서 지원하는 Spark SQL 버전은 많은 HiveQL 구문을 허용합니다. Apache Hive 호환성을 참조하세요. Azure Databricks에는 기본적으로 Hive 메타스토어가 포함되어 있습니다. 대부분의 Hive 마이그레이션에서 몇 가지 주요 문제를 해결해야 합니다.

  • Azure Databricks 네이티브 파일 코덱을 사용하도록 Hive SerDe를 업데이트해야 합니다. (Azure Databricks SerDe를 사용하도록 DDL을 STORED AS에서 USING으로 변경합니다.)
  • Hive UDF는 클러스터에 라이브러리로 설치되거나 네이티브 Spark로 리팩터링되어야 합니다. Hive UDF는 이미 JVM에 있으므로 많은 워크로드에 충분한 성능을 제공할 수 있습니다. 가장 효율적인 UDF를 확인하세요.
  • Azure Databricks는 Hive와 다르게 파티션을 사용하므로 테이블의 디렉터리 구조를 변경해야 합니다. Azure Databricks에서 테이블을 분할하는 경우를 참조하세요.

초기 마이그레이션 중에 테이블을 Delta Lake로 업데이트하도록 선택하면 여러 DDL 및 DML 문이 지원되지 않습니다. 여기에는 다음이 포함됩니다.

  • 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
  • TRUNCATE TABLE에서 PARTITION (part_spec)을 사용하여 대상 파티션 지정

Azure Databricks에서 SQL ETL 파이프라인을 실행할 수 있나요?

다른 시스템에서 Azure Databricks로 SQL 워크로드를 마이그레이션하려면 일반적으로 소스 코드에서 시스템 특정 프로토콜이 사용된 정도에 따라 리팩터링이 거의 필요하지 않습니다. Azure Databricks는 Delta Lake를 기본 테이블 형식으로 사용하므로 기본적으로 트랜잭션 보장을 사용하여 테이블을 만듭니다 .

Spark SQL은 대체로 ANSI을 준수하지만 동작에 몇 가지 차이점이 있을 수 있습니다. Databricks Data Intelligence Platform이 엔터프라이즈 데이터 웨어하우스와 어떻게 다른지 알아보세요.

데이터 시스템은 외부 데이터에 대한 액세스를 다르게 구성하는 경향이 있기 때문에 SQL ETL 파이프라인을 리팩터링하는 대부분의 작업은 이러한 데이터 원본에 대한 액세스를 구성한 다음 이러한 새 연결을 사용하도록 논리를 업데이트하는 것일 수 있습니다. Azure Databricks는 수집을 위해 많은 데이터 원본에 연결하는 옵션을 제공합니다.

Azure Databricks에서 dbt ETL 파이프라인을 실행할 수 있나요?

Azure Databricks는 dbt와의 네이티브 통합을 제공하므로 리팩터링을 거의 사용하지 않고 기존 dbt 스크립트를 활용할 수 있습니다.

Delta Live Tables는 파이프라인 만들기, 테스트 및 배포를 위한 최적화된 Databricks 네이티브 선언적 SQL 구문을 제공합니다. Azure Databricks에서 dbt를 활용할 수 있지만 코드를 Delta Live Tables로 가볍게 리팩터링하면 Azure Databricks에서 파이프라인을 연산하는 데 드는 총 비용이 감소할 수 있습니다. 델타 라이브 테이블이란?을 참조하세요.

서버리스 클라우드 함수를 Azure Databricks로 마이그레이션할 수 있나요?

사용자 지정 서버리스 클라우드 함수의 확장성과 다양성으로 인해 일반적인 권장 사항을 제공하기는 어렵지만, 이러한 함수의 가장 일반적인 사용 사례 중 하나는 파일 또는 데이터가 위치 또는 메시지 큐에 표시되기를 기다린 다음 그에 따라 일부 작업을 수행하는 것입니다. Azure Databricks는 클라우드 조건에 따라 워크로드를 트리거하는 복잡한 논리를 지원하지 않지만 워크플로 와 함께 구조적 스트리밍을 사용하여 데이터를 증분 처리할 수 있습니다.

클라우드 개체 스토리지에서 최적화된 데이터 수집을 위해 자동 로더를 사용합니다. 구조적 스트리밍은 스트리밍 원본의 데이터를 거의 실시간으로 처리할 수 있습니다.

Azure Databricks의 다른 데이터 시스템에서 구문을 실행할 수 있나요?

SQL, Apache Spark 또는 Hive 이외의 언어로 정의된 ETL 파이프라인은 Azure Databricks에서 실행하기 전에 대체로 리팩터링해야 할 수 있습니다. Azure Databricks에는 고객이 현재 사용 중인 대부분의 데이터 시스템에서 마이그레이션하는 데 도움이 되는 환경이 있으며, 마이그레이션 작업을 시작할 수 있도록 리소스가 제공될 수 있습니다.