メインコンテンツまでスキップ

フォーリンテーブルを使用する

フォーリンテーブル は、 フェデレーテッドテーブル と呼ばれることもあり、フォーリンカタログの一部として Unity Catalog を使用して登録されたテーブルです。 フォーリンテーブルには、外部システムによって管理されるデータとメタデータが含まれており、 Unity Catalog はこれらのテーブルをクエリするためのデータガバナンスを追加します。

Databricks では、登録する フォーリンテーブルに対して、以下のメソッドをサポートしています。

  • クエリフェデレーションは 、セキュアなJDBC接続を使用して、PostgreSQLやMySQLなどの外部データシステムにフェデレーションします。
  • カタログ フェデレーションは、 Hive metastoreやSnowflake Horizon カタログなどの外部カタログを接続して、ファイル ストレージ内のデータを直接クエリします。
重要

レガシーなApache SparkやDatabricksワークロードとの後方互換性のために、フェデレーションされたHiveメタストアは、テーブルがHiveのマネージドテーブルなのか、Hive外部テーブルなのかを含むひHiveメタストアのメタデータを返却します。

なぜフォーリンテーブルを使うのですか?

フォーリンテーブルは、 Databricks を既存のデータシステムに統合するとき、またはレガシーシステムから移行するときに柔軟性を提供します。

多くのフォーリンテーブルは、上流の ETL ワークフローのデータ移行やコード リファクタリングを必要とせずに迅速なソリューションを提供するため、 Databricksによって管理されていないデータに直接アクセスするための一時的なETLとして機能します。 Databricksでは、マネージドテーブルが最高のパフォーマンスを提供し、多くの最適化が組み込まれているため、本番運用ワークロードを駆動するデータセットや頻繁にクエリが実行されるデータセットをUnity Catalogマネージドテーブルに移行することをお勧めします。 「フォーリンテーブルをマネージドUnity Catalogテーブルに変換する」を参照してください。

クエリフェデレーションは、 Lakeflow Connectでサポートされていない外部データシステムからデータを読み込むための無料のソリューションを提供します。 Databricks は、 マテリアライズドビュー を使用してフォーリンテーブルを Unity Catalogに複製することを推奨しています。 マテリアライズドビューを使用してフォーリンテーブルからデータを読み込むを参照してください

フォーリンテーブルを作成するか、フォーリンテーブルに書き込む

十分な権限があり、ワークスペースが内部フェデレーション Hive metastoreで構成されている場合は、内部フェデレーション テーブルによってバックアップされたフォーリンテーブルを作成したり、フォーリンテーブルに書き込んだり Hive metastore。 外部フェデレーション Hive metastore と、レイクハウスフェデレーションによってサポートされるすべてのフォーリンテーブルは読み取り専用です。

Databricks は、フォーリンテーブルへの書き込みのメタデータ、データ、またはセマンティクスを管理しません。 フォーリンテーブルは、 Delta Lake や Apache Icebergなどの ACID 準拠の形式でサポートされる場合がありますが、フォーリンテーブルは Unity Catalog マネージドテーブルのトランザクション保証を提供しません。

クエリのパフォーマンス、書き込み速度の向上、データのスキップ、メタデータのみのクエリに関するほとんどの Databricks の最適化には、Unity Catalog が必要です。DatabricksUnity Catalogでは、最新の バージョンを使用してフォーリンテーブルとマネージドテーブルDatabricks Runtime 読み取りと書き込みのクエリパフォーマンスを比較し、レイテンシとコストの違いを評価することをお勧めします。および については、 のUnity Catalog マネージドテーブルDatabricks Delta LakeApacheIcebergを参照してください。