Hologres では、外部サーバーを設定して、Object Storage Service (OSS) バケットなどの外部データソースの接続情報を指定できます。その後、外部テーブルを作成して、システム間でデータにアクセスし、クエリを実行できます。このトピックでは、HoloWeb の可視化ツールを使用して、外部サーバーの作成、外部テーブルの管理、およびデータのプレビューを行う方法を説明します。
前提条件
OSS バケットが作成され、データが OSS バケットにインポートされていること。詳細については、「OSSの開始方法」をご参照ください。
Data Lake Formation (DLF) のデータカタログが作成されていること。詳細については、「データカタログ」をご参照ください。
使用する外部データラッパー (FDW) に対する USAGE 権限がアカウントに付与されていること。詳細については、「権限承認」をご参照ください。
外部サーバーの DLF データカタログに、データベースとテーブルがすでに存在すること。データベースとテーブルの作成方法の詳細については、「データベーステーブルと関数」をご参照ください。
制限事項
外部データソースとマッピングされた Hologres 外部テーブルは、同じリージョンに存在する必要があります。
外部サーバーの作成
Hologres では、外部サーバーを使用して、FDW がシステム間のデータアクセスやクエリのために OSS バケットなどの外部データソースにアクセスする際に使用する接続情報を定義します。また、ユーザーマッピングを作成して、ユーザー固有の接続情報を定義することもできます。詳細については、「外部サーバーの作成」をご参照ください。
Hologres コンソールにログインします。
上部メニューで、ドロップダウンリストからリージョンを選択します。
-
左側メニューで インスタンス一覧 をクリックします。ターゲットインスタンスの 操作 列で データレイクアクセラレーション をクリックして、この機能を有効にします。
-
Hologres データベースへ をクリックして、HoloWeb 開発ページを開きます。
-
ターゲットデータベースにログインした後、HoloWeb の上部メニューで メタデータ管理 をクリックします。
-
メタデータ管理ページで、 を選択します。
[Server Name] は、文字またはアンダースコア (_) で始まり、文字、数字、アンダースコアのみを含み、長さは 1~63 文字である必要があります。
次の表にパラメーターを示します。
パラメーター
説明
サーバー名
作成する外部サーバーの名前。
重要外部サーバーの名前は、データベース内で一意である必要があります。
DLF エンドポイント
DLF のエンドポイントです。デフォルトでは、現在のリージョンの DLF のエンドポイントが使用されます。DLF がサポートするリージョンとエンドポイントの詳細については、「サポートされているリージョンとエンドポイント」をご参照ください。
DLF カタログ
ドロップダウンリストから既存の DLF カタログを選択します。リストが空の場合は、DLF コンソールに移動して作成してください。 をクリックして作成します。
OSS エンドポイント
デフォルトでは、現在のリージョンのネイティブ OSS エンドポイントが使用されます。ドロップダウンリストから OSS-HDFS エンドポイントを選択できます。OSS バケットがない場合は、OSS コンソールに移動して作成してください。 をクリックします。
説明OSS エンドポイントは、「リージョンとエンドポイント」から取得できます。
-
OSS-HDFS エンドポイントは、OSS コンソールで OSS-HDFS が有効になっているバケットの 概要 ページで確認できます。
-
コミット をクリックして、外部サーバーを作成します。
外部テーブルの作成
Hologres コンソールにログインします。
上部メニューで、ドロップダウンリストからリージョンを選択します。
-
Hologres データベースへ をクリックして、HoloWeb 開発ページを開きます。
-
HoloWeb の上部メニューで、メタデータ管理 をクリックします。
-
メタデータ管理ページで、 を選択します。
アクセラレーションメソッドとして、[Entire Project]、[Selected Tables]、または [Single Table] を指定できます。次の表に、各アクセラレーションメソッドに関連するパラメーターを示します。
Entire Project
カテゴリ
パラメーター
説明
アクセラレーションメソッド
Entire Project
DLF の指定されたデータベース内のすべてのソーステーブルに対して Hologres 外部テーブルを作成するメソッド。
DLF データソース
サーバー名
作成した外部サーバーの名前。このパラメーターは、外部データソースの接続情報を指定するために使用されます。
DB 名
外部サーバーで指定されている DLF カタログ内のデータベースの名前。
宛先の場所
Holo スキーマ
デフォルト値は public です。ドロップダウンリストから、権限を持つ別のスキーマを選択できます。
詳細設定
テーブル名の競合に関する処理ルール
作成する外部テーブルが、データベース内の既存の外部テーブルと同じ名前である場合の処理ルール。有効値:
[競合を無視してテーブルの作成を続行]: システムはこのテーブルの作成をスキップし、他のテーブルの作成を続行します。
[テーブル名を変更]: システムは、作成するテーブルの名前を自動的に変更します。
[エラーを報告してテーブルを作成しない]: システムはエラーメッセージを報告し、テーブルの作成を停止します。
サポートされていないデータ型に対する処理ルール
ソーステーブルの特定のデータ型が Hologres でサポートされていない場合の処理ルール。有効値:
[エラーを報告してインポートを停止]: システムはエラーメッセージを報告し、データインポートは失敗します。
-
[サポートされていないバッキングフィールドを無視、スキップ]: サポートされていないフィールドを持つテーブルをスキップし、インポートを続行します。
Selected Tables
カテゴリ
パラメーター
説明
アクセラレーションメソッド
Selected Tables
指定されたソーステーブルに対して Hologres 外部テーブルを作成するメソッド。検索ボックスにテーブル名を入力して、あいまい一致でテーブルを検索できます。
DLF データソース
サーバー名
作成した外部サーバーの名前。このパラメーターは、外部データソースの接続情報を指定するために使用されます。
DB 名
外部サーバーで指定されている DLF カタログ内のデータベースの名前。
宛先の場所
Holo スキーマ
デフォルト値は public です。ドロップダウンリストから、権限を持つ別のスキーマを選択できます。
詳細設定
テーブル名の競合に関する処理ルール
作成する外部テーブルが、データベース内の既存の外部テーブルと同じ名前である場合の処理ルール。有効値:
[競合を無視してテーブルの作成を続行]: システムはこのテーブルの作成をスキップし、他のテーブルの作成を続行します。
[テーブル名を変更]: システムは、作成するテーブルの名前を自動的に変更します。
[エラーを報告してテーブルを作成しない]: システムはエラーメッセージを報告し、テーブルの作成を停止します。
サポートされていないデータ型に対する処理ルール
ソーステーブルの特定のデータ型が Hologres でサポートされていない場合の処理ルール。有効値:
[エラーを報告してインポートを停止]: システムはエラーメッセージを報告し、データインポートは失敗します。
-
[サポートされていないバッキングフィールドを無視、スキップ]: サポートされていないフィールドを持つテーブルをスキップし、インポートを続行します。
検索
テーブル名であいまい検索を行い、テーブルを選択します。
Single Table
カテゴリ
パラメーター
説明
アクセラレーションメソッド
Single Table
指定されたソーステーブルに対して Hologres 外部テーブルを作成するメソッド。
DLF データソース
サーバー名
作成した外部サーバーの名前。このパラメーターは、外部データソースの接続情報を指定するために使用されます。
DB 名
外部サーバーで指定されている DLF カタログ内のデータベースの名前。
テーブル名
外部テーブルを作成する DLF データベース内のテーブルの名前。
宛先の Hologres テーブル
スキーマ
デフォルト値は public です。ドロップダウンリストから、権限を持つ別のスキーマを選択できます。
テーブル名
作成する Hologres 外部テーブルの名前。
説明DLF データソースセクションでテーブル名パラメーターを指定すると、このパラメーターに同じ値が自動的に入力されます。Hologres 外部テーブルの名前は変更できます。
宛先テーブルの説明
作成する Hologres 外部テーブルの説明。カスタムの説明を入力できます。
-
コミット をクリックします。次に、左側メニューを更新して、対応するスキーマの下に新しい外部テーブルが表示されることを確認します。
-
(オプション) 作成した外部テーブルをダブルクリックし、クエリテーブル をクリックして SQL エディターを開きます。標準の PostgreSQL 構文を使用してデータをクエリできます。
説明DLF データソースのセクションでテーブル名パラメーターを指定すると、外部ソーステーブルのすべてのフィールドが表示されます。外部テーブルを作成する際、デフォルトではすべてのフィールドが含まれます。外部テーブルに指定したフィールドのみを含める場合は、アクセラレーションメソッドを [Single Table] に設定するか、SQL 文を実行して外部テーブルを作成してください。SQL 文を実行して外部テーブルを作成する方法の詳細については、「CREATE FOREIGN TABLE」をご参照ください。
SQL 文を使用した外部サーバーに対するその他の操作
外部サーバーを作成した後、SQL 文を実行して、外部サーバーを表示、変更、または削除できます。
作成された外部サーバーの表示。
SELECT * FROM pg_foreign_server;外部サーバーの DLF カタログの変更。
ALTER SERVER <foreignserver_name> OPTIONS (ADD|SET|DROP dlf_catalog ['<catalog_name>']) ;次の表にパラメーターを示します。
パラメーター
説明
foreignserver_name
変更する外部サーバーの名前。
ADD
外部サーバーに DLF カタログを追加します。
SET
外部サーバーの DLF カタログを変更します。
DROP
外部サーバーの DLF カタログを削除します。例:
ALTER SERVER foreign_server_test OPTIONS (DROP dlf_catalog) ;。外部サーバーの削除。
DROP SERVER <foreignserver_name> CASCADE;次の表にパラメーターを示します。
パラメーター
説明
foreignserver_name
削除する外部サーバーの名前。
CASCADE
外部サーバーを削除する際に、そのサーバーに依存するオブジェクトも削除するためのカスケード操作です。たとえば、外部サーバーに依存する外部テーブルが削除されます。
外部テーブルに対するその他の操作
外部テーブルの編集
-
HoloWeb の左側メニューで、ログインインスタンス リストを展開します。
-
ターゲットインスタンス > ターゲットデータベース > ターゲットスキーマに移動し、外観 をクリックして、作成されたすべての外部テーブルを表示します。
-
ターゲットの外部テーブルをダブルクリックし、詳細ページで テーブルの編集 をクリックします。
-
外部ソーステーブルからマッピングされた フィールドの同期 または パーティション を変更できます。
-
コミット をクリックして変更を保存します。
外部テーブルの名前変更
-
HoloWeb ページの左側メニューの ログインインスタンス リストでターゲットの外部テーブルを見つけるには、「外部テーブルの編集」の手順1と2をご参照ください。
-
ターゲットの外部テーブルを右クリックし、名前の変更 を選択します。
-
名前の編集 ダイアログボックスに、新しい名前を入力します。
-
OK をクリックします。
外部テーブルの削除
-
HoloWeb ページの左側メニューで、ログインインスタンス リスト内のターゲットの外部テーブルを見つけます。テーブルを見つける手順については、「外部テーブルの編集」の手順1と2をご参照ください。
-
ターゲットの外部テーブルを右クリックし、テーブルの削除 を選択します。
-
テーブルの削除 ダイアログボックスで OK をクリックします。
データのプレビュー
-
HoloWeb ページの左側メニューの ログインインスタンス リストで、「外部テーブルの編集」の手順1と2に従って、ターゲットの外部テーブルを見つけます。
-
ターゲットの外部テーブルをダブルクリックします。表示される詳細ページで、データプレビュー タブをクリックします。
よくある質問
問題の説明: RAM ユーザーを使用して HoloWeb の外部テーブルにアクセスすると、次のエラーメッセージが表示されます。このエラーメッセージは、RAM ユーザーに DLF API を呼び出す権限がないことを示しています。エラーメッセージには、次の情報が含まれています:
You are not authorized to perform the operation. Please use RAM to authorize the operation.Action: [dlf:xxx].-
解決策: RAM コンソールで、RAM ユーザーに API 操作に必要な AliyunDLF 権限を付与します。
関連ドキュメント
SQL 文を使用して外部サーバーを作成することもできます。詳細については、「外部サーバーの作成」をご参照ください。
SQL 文を使用して外部テーブルを作成することもできます。詳細については、「Hologresインスタンスでの外部テーブルの作成」をご参照ください。
外部テーブルの DDL 文の詳細については、次のトピックをご参照ください: