Azure Databricks 上の外部データを対話的に操作する
Databricks Runtime は、一般的なデータ ソースと形式へのバインドを提供し、Lakehouse からのデータのインポートとエクスポートを簡単にします。 この記事では、サポートが組み込まれている形式と統合を特定するのに役立つ情報を提供します。 さらに多くのシステムと対話処理するために Azure Databricks を拡張する方法についても説明します。 Azure Databricks 上のほとんどのデータは、クラウド オブジェクト ストレージに存在します。 「データはどこにあるのか」を参照してください。
Azure Databricks には、データの読み込みとインジェストに関するさまざまな最適化が用意されています。
Azure Databricks では、クエリ フェデレーションもサポートされています。 「Lakehouse フェデレーションを使用してクエリを実行する」を参照してください。
以前に Azure Databricks でデータの読み取りまたは書き込みを行ったことがない場合は、Python または Scala の DataFrames チュートリアルを確認することを検討してください。 Apache Spark に精通しているユーザーの場合でも、このチュートリアルでは、クラウド内のデータへのアクセスに関連する新しい課題を解決できる可能性があります。
Partner Connect は、多くのエンタープライズ ソリューションに対する、最適化された簡単に構成できる統合を提供します。 「Databricks Partner Connect とは」を参照してください。
Azure Databricks で使用できるデータ形式
Azure Databricks には、Apache Spark でネイティブでサポートされているすべてのデータ形式のキーワード バインドが組み込まれています。 Azure Databricks では、データとテーブルの読み取りと書き込みの既定のプロトコルとして Delta Lake を使用しますが、Apache Spark では Parquet を使用します。
次のすべてのデータ形式で、Apache Spark DataFrames と SQL に組み込まれたキーワード構成があります。
- Delta Lake
- Delta Sharing
- Parquet
- ORC
- JSON
- CSV
- XML (プライベート プレビュー: XML 形式に関するページを参照)
- Avro
- テキスト
- Binary
Azure Databricks には、MLflow 実験を読み込むためのカスタム キーワードも用意されています。
Azure Databricks でストリーミング データを使用する
Azure Databricks を使用すると、Databricks レイクハウスへのほぼリアルタイムのデータ インジェストを目的として、ストリーム メッセージング サービスと統合することができます。 Azure Databricks では、レイクハウス内のエンリッチおよび変換されたデータを他のストリーミング システムと同期することもできます。
構造化ストリーミングでは、Apache Spark でサポートされているファイル形式へのネイティブ ストリーミング アクセス権が付与されますが、Databricks では、クラウド オブジェクト ストレージからデータを読み取るほとんどの構造化ストリーミング操作で自動ローダーを使用することをお勧めします。 「自動ローダー」を参照してください。
Delta Lake にストリーミング メッセージをインジェストすると、メッセージを無期限に保持できるため、保持しきい値によるデータの損失を恐れることなく、データ ストリームを再生できます。
Azure Databricks には、Avro、プロトコル バッファー、JSON データ ペイロードに含まれる半構造化データ フィールドを操作するための特定の機能があります。 詳細については、次を参照してください。
メッセージ キューのストリーミングに関する特定の構成の詳細については、次を参照してください。
JDBC を使用して Azure Databricks に接続するデータ ソース
JDBC を使用して、多くのデータ ソースに接続できます。 Databricks Runtime には、多数の JDBC データベースのドライバーが含まれていますが、選択したデータベースに接続するにために、ドライバーまたは別のドライバー バージョンをインストールする必要がある場合があります。 次のようなデータベースがサポートされます。
- Azure Databricks を使用した PostgreSQL のクエリ
- Azure Databricks を使用した MySQL のクエリ
- Azure Databricks を使用した MariaDB のクエリ
- Azure Databricks を使用した SQL Server のクエリ
- Databricks コネクタを使用して別の Databricks ワークスペースに接続する
外部データベース システムに対するクエリを管理する場合は、Lakehouse フェデレーションが適している可能性があります。 「Lakehouse フェデレーションを使用してクエリを実行する」を参照してください。
Azure Databricks と統合されるデータ サービス
次のデータ サービスでは、接続設定、セキュリティ資格情報、およびネットワーク設定を構成する必要があります。 Azure アカウントまたは Azure Databricks ワークスペースに管理者特権またはパワー ユーザー特権が必要な場合があります。 一部では、Azure Databricks ライブラリを作成し、クラスターにインストールする必要もあります。
- Azure Synapse Analytics のクエリ データ
- Azure Cosmos DB
- MongoDB
- Cassandra
- Couchbase
- ElasticSearch
- Snowflake からのデータの読み取りと書き込み
- Google BigQuery
外部データベース システムに対するクエリを管理する場合は、Lakehouse フェデレーションが適している可能性があります。 「Lakehouse フェデレーションを使用してクエリを実行する」を参照してください。
特別な考慮事項があるデータ形式
次のデータ形式では、使用するために追加の構成や特別な考慮事項が必要になる場合があります。
- Databricks では、イメージを
binary
データとしてを読み込むことをお勧めします。 - XML はネイティブではサポートされていませんが、ライブラリのインストール後に使用できます。
- Apache Spark では、Hive テーブルもネイティブでサポートされていますが、Azure Databricks での構成が必要です。
- Azure Databricks では、圧縮したままでも、多くのファイル形式を直接読み取ることができます。 必要に応じて、Azure Databricks で圧縮ファイルを解凍することもできます。
- LZO にはコーデックのインストールが必要です。
Apache Spark データ ソースの詳細については、汎用読み込み/保存関数と汎用ファイル ソース オプションを参照してください。