フォーリンテーブルを使用する
フォーリンテーブル は、 フェデレーテッドテーブル と呼ばれることもあり、フォーリンカタログの一部として Unity Catalog を使用して登録されたテーブルです。 フォーリンテーブルには、外部システムによって管理されるデータとメタデータが含まれており、 Unity Catalog はこれらのテーブルをクエリするためのデータガバナンスを追加します。
Databricks では、登録する フォーリンテーブルに対して、以下のメソッドをサポートしています。
- レイクハウスフェデレーションは、セキュアな JDBC 接続を使用して、 PostgreSQL や MySQLなどの外部データシステムにフェデレートします。 「レイクハウスフェデレーションとは」を参照してください。
- Hive metastoreフェデレーションはUnity CatalogHive metastoreによって管理されるテーブルにデータガバナンスを追加します。Hive metastoreフェデレーション: Hive metastoreに登録されたテーブルを管理するための Unity Catalog の有効化 を参照してください。
フォーリンカタログ内のすべてのテーブルはフォーリンテーブルであり、フォーリンテーブルはフォーリンカタログに存在する必要があります。
レガシーなApache SparkやDatabricksワークロードとの後方互換性のために、フェデレーションされたHiveメタストアは、テーブルがHiveのマネージドテーブルなのか、Hive外部テーブルなのかを含むひHiveメタストアのメタデータを返却します。
なぜフォーリンテーブルを使うのですか?
フォーリンテーブルは、 Databricks を既存のデータシステムに統合するとき、またはレガシーシステムから移行するときに柔軟性を提供します。
多くのフォーリンテーブルは、 Databricksで管理されていないデータに直接アクセスするための一時的なソリューションとして機能し、データ移行やアップストリーム ETL ワークフローのコードリファクタリングを必要とせずに迅速なソリューションを提供します。 Databricksでは、マネージドテーブルがベストなパフォーマンスと数多くの組み込み最適化を提供することから、本番運用ワークロードで使用されるデータセットや、頻繁にクエリーされるデータセットをUnity Catalogのマネージドテーブルに移行することをお勧めします。
レイクハウスフェデレーションは、 LakeFlow Connectでサポートされていない外部データ システムからデータを読み込むための無料のソリューションを提供します。 Databricks は、マテリアライズドビューを使用してフォーリンテーブルを Unity Catalogにレプリケートすることをお勧めします。 マテリアライズドビューを使用してフォーリンテーブルからデータをロードするを参照してください。
フォーリンテーブルを作成するか、フォーリンテーブルに書き込む
十分な権限があり、ワークスペースが内部フェデレーション Hive metastoreで構成されている場合は、内部フェデレーション テーブルによってバックアップされたフォーリンテーブルを作成したり、フォーリンテーブルに書き込んだり Hive metastore。 外部フェデレーション Hive metastore と、レイクハウスフェデレーションによってサポートされるすべてのフォーリンテーブルは読み取り専用です。
Databricks は、フォーリンテーブルへの書き込みのメタデータ、データ、またはセマンティクスを管理しません。 フォーリンテーブルは、 Delta Lakeなどの ACID 準拠の形式でサポートされる場合がありますが、フォーリンテーブルは Unity Catalog マネージドテーブルのようなトランザクション保証を提供しません。
クエリのパフォーマンス、書き込み速度の向上、データのスキップ、メタデータのみのクエリに関するほとんどの Databricks の最適化には、Delta Lake と Unity Catalog が必要です。DatabricksUnity Catalogでは、最新の バージョンを使用してフォーリンテーブルとマネージドテーブルDatabricks Runtime 読み取りと書き込みのクエリパフォーマンスを比較し、レイテンシとコストの違いを評価することをお勧めします。