ETL パイプラインを Databricks に移行する

この記事では、他のデータ システムで実行されている抽出、変換、ロード (ETL) パイプラインを Databricks に移行するためのオプションの概要について説明します。 Apache Spark コードを移行する場合は、「 既存の Apache Spark コードを Databricks に適合させる」を参照してください。

エンタープライズ データウェアハウスからレイクハウスへの移行に関する一般的な情報については、「 データウェアハウスを Databricks レイクハウスに移行する」を参照してください。 Parquet から Delta Lake への移行については、「 Parquet データレイクを Delta Lake に移行する」を参照してください。

DatabricksでHiveパイプラインを実行できますか?

ほとんどの Hive ワークロードは、最小限のリファクタリングで Databricks で実行できます。 Databricks Runtime でサポートされている Spark SQL のバージョンでは、多くの HiveQL コンストラクトを使用できます。「Apache Hive の互換性」を参照してください。Databricks には、デフォルトによる Hive metastore が含まれています。 ほとんどの Hive 移行では、いくつかの主な懸念事項に対処する必要があります。

最初の移行中にテーブルを 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

  • PARTITION (part_spec) を使用したターゲット区画の指定 TRUNCATE TABLE

DatabricksでSQL ETLパイプラインを実行できますか?

他のシステムから Databricks に SQL ワークロードを移行する場合、ソース コードで使用されたシステム固有のプロトコルの程度に応じて、通常、リファクタリングはほとんど必要ありません。 Databricks では、既定のテーブル形式として Delta Lake が使用されるため、テーブルは既定のトランザクション 保証 を使用して作成されます。

Spark SQL はほぼ ANSI に準拠していますが、動作にいくつかの違いがある場合があります。 「 Databricksデータインテリジェンスプラットフォームとエンタープライズ データウェアハウスの違い」を参照してください。

データ システムでは外部データへのアクセスの構成が異なる傾向があるため、SQL ETL パイプラインをリファクタリングする作業の多くは、これらの DATA へのアクセスを構成し、これらの新しい接続を使用するようにロジックを更新することです。 Databricks には、 インジェストのために多くの DATA に接続するためのオプションが用意されています。

Databricksでdbt ETLパイプラインを実行できますか?

Databricks は dbt とのネイティブ統合を提供し、リファクタリングをほとんど行わずに既存の dbt スクリプトを活用できるようにします。

Delta Live Tables は、パイプラインを作成、テスト、およびデプロイするために最適化された Databricks ネイティブの宣言型 SQL 構文を提供します。 Databricks で dbt を利用することはできますが、 Delta Live Tables するためのコードのリファクタリングが簡単な場合、Databricks でパイプラインを操作するための総コストを削減できる可能性があります。 「 Delta Live Tablesとは」を参照してください。

サーバレス クラウド機能を Databricks に移行できますか?

カスタムサーバレスクラウド機能の拡張性と汎用性により、共通のレコメンデーションを提供することは困難ですが、これらの機能の最も一般的なユースケースの1つは、ファイルまたはデータが場所またはメッセージキューに表示されるのを待ってから、結果として何らかのアクションを実行することです。 Databricks は、クラウドの状態に基づいてワークロードをトリガーするための複雑なロジックをサポートしていませんが、構造化ストリーミングを ワークフロー と組み合わせて使用して、データを段階的に処理できます。

Auto Loaderを使用して、クラウド・オブジェクト・ストレージからのデータ取り込みを最適化します。構造化ストリーミングは、 ストリーミング ソース からのデータをほぼリアルタイムで処理できます。

Databricks 上の他のデータ システムから構文を実行できますか?

SQL、Apache Spark、または Hive 以外の言語で定義された ETL パイプラインは、Databricks で実行する前に大幅にリファクタリングする必要がある場合があります。 Databricks は、現在使用されているほとんどのデータ システムからの移行を支援した経験があり、移行作業をすぐに開始できるリソースを用意している可能性があります。