フォーリンテーブルを使用する
フォーリンテーブル は、 フェデレーテッドテーブル と呼ばれることもあり、フォーリンカタログの一部として Unity Catalog を使用して登録されたテーブルです。 フォーリンテーブルには、外部システムによって管理されるデータとメタデータが含まれており、 Unity Catalog はこれらのテーブルをクエリするためのデータガバナンスを追加します。
Databricks では、登録する フォーリンテーブルに対して、以下のメソッドをサポートしています。
- データベース連携では、セキュアな JDBC 接続を使用して、PostgreSQL や MySQL などの外部データシステムと連携します。
- カタログ フェデレーションは、 Hive metastore、 Glue、 Snowflake Horizon Catalog などの外部カタログを接続して、ファイル ストレージ内のデータを直接クエリします。
外部ソースへの接続の詳細については、「 レイクハウスフェデレーションとは」 を参照してください。
フォーリンカタログ内のすべてのテーブルはフォーリンテーブルであり、フォーリンテーブルはフォーリンカタログに存在する必要があります。
レガシーなApache SparkやDatabricksワークロードとの後方互換性のために、フェデレーションされたHiveメタストアは、テーブルがHiveのマネージドテーブルなのか、Hive外部テーブルなのかを含むひHiveメタストアのメタデータを返却します。
なぜフォーリンテーブルを使うのですか?
フォーリンテーブルは、 Databricks を既存のデータシステムに統合するとき、またはレガシーシステムから移行するときに柔軟性を提供します。
多くのフォーリンテーブルは、 Databricksで管理されていないデータに直接アクセスするための一時的なソリューションとして機能し、データ移行やアップストリーム ETL ワークフローのコードリファクタリングを必要とせずに迅速なソリューションを提供します。 Databricksでは、マネージドテーブルがベストなパフォーマンスと数多くの組み込み最適化を提供することから、本番運用ワークロードで使用されるデータセットや、頻繁にクエリーされるデータセットをUnity Catalogのマネージドテーブルに移行することをお勧めします。
レイクハウスフェデレーションは、 Lakeflowコネクトでサポートされていない外部データ システムからデータを読み込むための無料のソリューションを提供します。 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を参照してください。