Hologresでは、外部サーバーを構成して、Object Storage Service(OSS)バケットなどの外部データソースの接続情報を指定できます。その後、外部テーブルを作成して、システム全体でデータにアクセスし、クエリを実行できます。このトピックでは、HoloWeb視覚化ツールを使用して外部サーバーを作成、外部テーブルを管理、およびデータをプレビューする方法について説明します。
前提条件
OSSバケットが作成され、データがOSSバケットにインポートされています。詳細については、「OSS入門」をご参照ください。
Data Lake Formation(DLF)カタログが作成されています。詳細については、「データカタログ」をご参照ください。
使用する外部データラッパー(FDW)に対するUSAGE権限がアカウントに付与されています。詳細については、「権限の許可」をご参照ください。
外部サーバーのDLFカタログにデータベースとテーブルがすでに存在しています。データベースとテーブルの作成方法の詳細については、「データベースのテーブルと関数」をご参照ください。
制限事項
外部データソースとマッピングされたHologres外部テーブルは、同じリージョンに存在する必要があります。
外部サーバーを作成する
Hologresでは、外部サーバーを使用して、FDWがシステム間のデータアクセスとクエリのためにOSSバケットなどの外部データソースにアクセスするために使用する接続情報を定義します。ユーザーマッピングを作成して、ユーザー固有の接続情報を定義することもできます。詳細については、「外部サーバーを作成する」をご参照ください。
Hologresコンソールにログオンします。
上部のナビゲーションバーで、ドロップダウンリストからリージョンを選択します。
左側のナビゲーションペインで、[インスタンス]をクリックします。表示されるページで、目的のインスタンスを見つけ、[アクション]列の[データレイクアクセラレーション]をクリックして、データレイクアクセラレーションを有効にします。
Hologresコンソールの左側のナビゲーションペインで、[holowebに移動]をクリックして、HoloWebコンソールに移動します。
HoloWebコンソールで、目的のデータベースに接続します。上部のナビゲーションバーで、[メタデータ管理]をクリックします。
メタデータ管理ページで、
を選択します。次の表に、パラメーターについて説明します。
パラメーター
説明
サーバー名
作成する外部サーバーの名前。
重要外部サーバーの名前は、データベース内で一意である必要があります。
DLFエンドポイント
DLFのエンドポイント。デフォルトでは、現在のリージョンのDLFのエンドポイントが使用されます。DLFでサポートされているリージョンとエンドポイントの詳細については、「サポートされているリージョンとエンドポイント」をご参照ください。
DLFカタログ
ドロップダウンリストから作成済みのDLFカタログを選択します。DLFカタログが作成されていない場合は、[DLFコンソールで作成]をクリックします。
OSSエンドポイント
OSSエンドポイント。デフォルトでは、現在のリージョンのネイティブOSSのエンドポイントが使用されます。ドロップダウンリストからOSS-HDFSエンドポイントを選択できます。OSSバケットが作成されていない場合は、[OSSコンソールで作成]をクリックします。
説明OSSエンドポイントは、「リージョンとエンドポイント」から取得できます。
OSS-HDFSエンドポイントは、OSS-HDFSが有効になっているバケットの[概要]ページで取得できます。
[送信]をクリックします。外部サーバーが作成されます。
外部テーブルを作成する
Hologresコンソールにログオンします。
上部のナビゲーションバーで、ドロップダウンリストからリージョンを選択します。
Hologresコンソールの左側のナビゲーションペインで、[holowebに移動]をクリックして、HoloWebコンソールに移動します。
上部のナビゲーションバーで、[メタデータ管理]をクリックします。
メタデータ管理ページで、
を選択します。[プロジェクト全体]、[選択したテーブル]、または [単一テーブル] を高速化方法として指定できます。次の表に、各高速化方法に関連するパラメーターを示します。
プロジェクト全体
カテゴリ
パラメーター
説明
アクセラレーション方法
プロジェクト全体
DLFで指定されたデータベース内のすべてのソーステーブルに対してHologres外部テーブルを作成する方法。
DLFデータソース
サーバー名
作成した外部サーバーの名前。このパラメーターは、外部データソースの接続情報を指定するために使用されます。
DB名
外部サーバーで指定されたDLFカタログ内のデータベースの名前。
デスティネーションの場所
Holoスキーマ
デフォルト値はpublicです。権限を持つ別のスキーマをドロップダウンリストから選択できます。
詳細設定
テーブル名競合の処理ルール
作成する外部テーブルの名前がデータベース内の既存の外部テーブルと同じ名前の場合の処理ルール。有効な値:
競合を無視してテーブルの作成を続行:システムはこのテーブルの作成をスキップし、他のテーブルの作成を続行します。
テーブル名を変更:システムは既存の外部テーブルのデータを更新します。
エラーを報告してテーブルを作成しない:システムはエラーメッセージを報告し、テーブルの作成を停止します。
サポートされていないデータ型の処理ルール
ソーステーブルの特定のデータ型がHologresでサポートされていない場合の処理ルール。有効な値:
エラーを報告してインポートを停止:システムはエラーメッセージを報告し、データのインポートは失敗します。
サポートされていないフィールドのテーブルを無視してスキップ:システムは、サポートされていないデータ型のデータを含むテーブルをスキップし、他のテーブルからデータをインポートします。
選択したテーブル
カテゴリ
パラメーター
説明
アクセラレーション方法
選択したテーブル
指定されたソーステーブルに対してHologres外部テーブルを作成する方法。検索ボックスにテーブル名を入力してあいまい一致検索を実行することで、テーブルを検索できます。
DLFデータソース
サーバー名
作成した外部サーバーの名前。このパラメーターは、外部データソースの接続情報を指定するために使用されます。
DB名
外部サーバーで指定されたDLFカタログ内のデータベースの名前。
デスティネーションの場所
Holoスキーマ
デフォルト値はpublicです。権限を持つ別のスキーマをドロップダウンリストから選択できます。
詳細設定
テーブル名競合の処理ルール
作成する外部テーブルの名前がデータベース内の既存の外部テーブルと同じ名前の場合の処理ルール。有効な値:
競合を無視してテーブルの作成を続行:システムはこのテーブルの作成をスキップし、他のテーブルの作成を続行します。
テーブル名を変更:システムは既存の外部テーブルのデータを更新します。
エラーを報告してテーブルを作成しない:システムはエラーメッセージを報告し、テーブルの作成を停止します。
サポートされていないデータ型の処理ルール
ソーステーブルの特定のデータ型がHologresでサポートされていない場合の処理ルール。有効な値:
エラーを報告してインポートを停止:システムはエラーメッセージを報告し、データのインポートは失敗します。
サポートされていないフィールドのテーブルを無視してスキップ:システムは、サポートされていないデータ型のデータを含むテーブルをスキップし、他のテーブルからデータをインポートします。
検索
あいまい一致を実行してテーブル名でテーブルを検索し、テーブルを選択します。
単一テーブル
カテゴリ
パラメーター
説明
アクセラレーション方法
単一テーブル
指定されたソーステーブルに対してHologres外部テーブルを作成する方法。
DLFデータソース
サーバー名
作成した外部サーバーの名前。このパラメーターは、外部データソースの接続情報を指定するために使用されます。
DB名
外部サーバーで指定されたDLFカタログ内のデータベースの名前。
テーブル名
外部テーブルを作成するDLFデータベース内のテーブルの名前。
デスティネーション Hologresテーブル
スキーマ
デフォルト値はpublicです。権限を持つ別のスキーマをドロップダウンリストから選択できます。
テーブル名
作成するHologres外部テーブルの名前。
説明DLFデータソースセクションでテーブル名パラメーターを指定すると、同じ値がこのパラメーターに自動的に入力されます。Hologres外部テーブルの名前を変更できます。
デスティネーションテーブルの説明
作成するHologres外部テーブルの説明。カスタムの説明を入力できます。
[送信]をクリックします。左側のインスタンスリストを更新して、選択したスキーマに作成された外部テーブルを表示できます。
オプション。作成した外部テーブルの名前をダブルクリックし、右上隅にある[テーブルのクエリ]をクリックします。SQLクエリウィンドウで、標準のPostgreSQLステートメントを実行してデータを開発します。
説明DLFデータソースセクションでテーブル名パラメーターを指定すると、外部ソーステーブルのすべてのフィールドが表示されます。外部ソーステーブルの外部テーブルを作成すると、デフォルトですべてのフィールドが外部テーブルに含まれます。指定したフィールドを外部テーブルに含める場合は、アクセラレーション方法を単一テーブルに設定するか、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コンソールの左側のナビゲーションペインで、[接続されたインスタンス]をクリックします。
目的のインスタンスの名前、目的のデータベースの名前、[外部テーブル]の順にクリックします。作成されたすべての外部テーブルが表示されます。
目的の外部テーブルの名前をダブルクリックします。表示されるページで、[テーブルの編集]をクリックします。
ビジネス要件に基づいて、外部テーブルの[フィールド]または[パーティション]を変更します。
[送信]をクリックします。
外部テーブルの名前を変更する
「外部テーブルを編集する」セクションの手順1~2に従って、HoloWebコンソールの左側のナビゲーションペインで、[接続されたインスタンス]リストから目的の外部テーブルを見つけます。
外部テーブルの名前を右クリックし、[名前の変更]を選択します。
[テーブル名の変更]ダイアログボックスで、新しい名前を入力します。
[OK]をクリックします。
外部テーブルを削除する
「外部テーブルを編集する」セクションの手順1~2に従って、HoloWebコンソールの左側のナビゲーションペインで、[接続されたインスタンス]リストから目的の外部テーブルを見つけます。
外部テーブルの名前を右クリックし、[テーブルの削除]を選択します。
[テーブルの削除]メッセージで、[OK]をクリックします。
データをプレビューする
「外部テーブルを編集する」セクションの手順1~2に従って、HoloWebコンソールの左側のナビゲーションペインで、[接続されたインスタンス]リストから目的の外部テーブルを見つけます。
外部テーブルの名前をダブルクリックします。表示されるページで、[データプレビュー]タブをクリックします。
FAQ
問題の説明:RAMユーザーを使用してHoloWebの外部テーブルにアクセスすると、次のエラーメッセージが表示されます。エラーメッセージは、RAMユーザーにDLF API操作を呼び出す権限がないことを示しています。エラーメッセージには、次の情報が含まれています。
You are not authorized to perform the operation. Please use RAM to authorize the operation.Action: [dlf:xxx].
解決策:RAMユーザーにDLF API操作に対するAliyunDLF関連の権限を付与します
関連情報
SQLステートメントを使用して外部サーバーを作成することもできます。詳細については、「外部サーバーを作成する」をご参照ください。
SQLステートメントを使用して外部テーブルを作成することもできます。詳細については、「Hologresインスタンスに外部テーブルを作成する」をご参照ください。
外部テーブルのDDLステートメントの詳細については、次のトピックをご参照ください。