すべてのプロダクト
Search
ドキュメントセンター

Hologres:MaxCompute データに対する高速クエリ

最終更新日:Jun 07, 2025

Hologres と MaxCompute は基盤レイヤーで緊密に統合されており、相互のストレージシステムへのシームレスな双方向アクセスとワンクリックのメタデータマッピング機能を実現し、データアクセス効率を大幅に向上させます。このトピックでは、Hologres を使用して MaxCompute からのデータ読み取りと MaxCompute へのデータ書き込みを高速化する機能と制限事項について説明します。

背景情報

  • MaxCompute は、大規模データウェアハウジング向けの高速で完全に管理されたコンピューティングプラットフォームです。最大エクサバイトのデータを処理できます。 MaxCompute は、大量の構造化データのバッチ格納と計算に使用されます。 MaxCompute は、さまざまなデータウェアハウジングソリューションとビッグデータ分析およびモデリングサービスを提供します。詳細については、「MaxCompute とは」をご参照ください。

  • Hologres は、Alibaba Cloud によって開発されたオールインワンのリアルタイム データウェアハウス サービスであり、大量のデータの書き込み、更新、処理、分析をリアルタイムで実行できます。 Hologres は MaxCompute と緊密に統合されています。外部データベースまたは外部テーブルを作成して MaxCompute メタデータにマッピングし、MaxCompute データのクエリを高速化できます。これにより、1 セットのストレージデータに基づいてクエリ結果を迅速に取得し、データをインポートすることなく外部サービスを提供できます。さらに、Hologres は標準の PostgreSQL プロトコルを使用して、PostgreSQL エコシステムのすべての主要な BI ツールとシームレスに統合します。詳細については、「BI 分析と可視化」をご参照ください。

  • Hologres V3.1 以降、MaxCompute データに対する Hologres の直接読み取り機能はバージョン 2.0 に完全にアップグレードされています。このバージョンでは、MaxCompute C++ Native SDK に基づいて基盤となる直接読み取りメカニズムが再構築され、Hologres が MaxCompute データソースにアクセスする際のパフォーマンスとユーザーエクスペリエンスがさらに向上しています。 Storage API を使用するアプローチと比較して、直接読み取り方式には大きな利点があります。 Pangu ストレージから直接データを読み取るため、MaxCompute 側の追加の計算コストやレート制限がなく、読み取りパフォーマンスは Storage API 方式の 2 倍以上です。

    説明

    新しいルーティングパスを使用して MaxCompute テーブルにアクセスするには、GUC パラメーターを追加する必要があります。セッションレベルで有効にすることをお勧めします。 SQL クエリ文の前に SET hg_experimental_external_catalog_routing = 'odps:common_table'; コマンドを追加し、一緒に実行します。

シナリオ

外部データベースまたは外部テーブルを使用して MaxCompute データのクエリを高速化する

リアルタイムデータ処理とオフラインデータ処理を統合したソリューションでは、最も重要な側面はデータ交換の簡素化です。ユーザーがデータを移動する必要がなく、単一のストレージシステムがオフラインとリアルタイムの両方のコンピューティングワークフローをサポートできることが期待されます。外部データベースまたは外部テーブルを使用してデータをクエリする機能は、この要件を効果的に満たします。

CREATE EXTERNAL DATABASE 文を実行して Hologres に外部データベースを作成し、MaxCompute プロジェクトのスキーマとテーブルをマッピングできます。また、IMPORT FOREIGN SCHEMA 文を実行して、一度に複数の外部テーブルを作成することもできます。少数の MaxCompute テーブルまたは MaxCompute テーブルの特定のフィールドに対するクエリを高速化するには、CREATE FOREIGN TABLE 文を実行します。ビジネスの特性とシナリオに基づいて方法を選択してください。

説明

Hologres V3.0 以降、外部テーブルを使用して MaxCompute データをクエリする場合、一度に最大 512 パーティションの最大 200 GB のデータをスキャンできるという制限はなくなりました。大規模なクエリは Hologres でより多くのリソースを消費します。リソースの分離を実行することをお勧めします。詳細については、「仮想ウェアハウスインスタンスの概要」をご参照ください。サーバーレスコンピューティングリソースを使用して、時折発生する大規模なクエリを実行することもできます。詳細については、「サーバーレスコンピューティングの概要」をご参照ください。

MaxCompute データを Hologres にインポートする

クエリのパフォーマンスを向上させるために、Hologres にデータをインポートしてからデータをクエリできます。この方法では、Hologres のインデックス作成機能とストレージの最適化を最大限に活用して、クエリをさらに高速化し、リアルタイムの BI 分析、高並列ポイントクエリ、複数テーブルでの複雑な関連付けクエリを実装できます。詳細については、「SQL 文を実行して MaxCompute から Hologres にデータをインポートする」をご参照ください。

Hologres から MaxCompute にデータをエクスポートする

実際のビジネスシナリオでは、通常、リアルタイムで Hologres に書き込まれたデータと集計分析結果を MaxCompute に書き戻す必要があります。これは、履歴データのアーカイブ、ホットデータとコールドデータの階層型ストレージ管理、オフラインデータウェアハウスの補充の要件を満たすのに役立ちます。INSERT INTO 文または INSERT OVERWRITE 文を実行して、データを MaxCompute に書き戻すことができます。詳細については、「MaxCompute にデータをエクスポートする」をご参照ください。

機能の説明

次の表に、外部データベースと外部テーブルを使用して MaxCompute データに対する高速クエリのために Hologres が提供する機能を示します。

Hologres バージョン

サポートされている機能

説明

V3.1

MaxCompute データに対する Hologres の直接読み取り機能はバージョン 2.0 に完全にアップグレードされています。このバージョンでは、MaxCompute C++ Native SDK に基づいて基盤となる直接読み取りメカニズムが再構築され、Hologres が MaxCompute データソースにアクセスする際のパフォーマンスとユーザーエクスペリエンスがさらに向上しています。

Storage API に基づく読み取り方式と比較して、バージョン 2.0 の直接読み取りメカニズムは Pangu ストレージに直接アクセスできるため、MaxCompute 側の追加の計算コストがなくなり、レート制限が回避されます。さらに、読み取りパフォーマンスの面では、直接読み取りアプローチは 2 倍以上のパフォーマンス上の利点があります。

Hologres は、MaxCompute Delta テーブルデータの直接読み取りをサポートしています。現在、Delta テーブルの最新のスナップショットへのフルアクセスのみをサポートしています。

Delta テーブルは、MaxCompute によって導入された増分データテーブル形式であり、分単位の粒度でのデータの取り込みをサポートしています。基盤となるファイル形式として AliORC を使用し、UPSERT セマンティクスをサポートし、Change Data Capture (CDC) 形式での増分データの読み取りと書き込みを可能にします。詳細については、「Hologres から MaxCompute Delta テーブルにアクセスする」をご参照ください。

Hologres は、動的データマスキング機能が有効になっている MaxCompute データの直接読み取りをサポートしています。

MaxCompute の動的データマスキング機能は、データアクセスまたは表示中に機密データをリアルタイムで非表示にしたり置き換えたりすることで、機密データの漏洩を防ぐのに役立ちます。詳細については、「動的データマスキング」をご参照ください。

Hologres は、MaxCompute スキーマ進化テーブルの直接読み取りをサポートしています。

サポートされている操作には、列の追加、列の削除、列タイプの変更、列の並べ替えが含まれます。

Hologres は、DATETIME 型、TIMESTAMP 型、または DECIMAL 型のフィールドをクラスタ列として使用する範囲クラスタテーブルを含む、MaxCompute クラスタテーブルの直接読み取りをサポートしています。

なし。

V3.0.7

CREATE EXTERNAL DATABASE 文は、MaxCompute プロジェクトのスキーマとテーブルをマッピングするために Hologres に外部データベースを作成するためにサポートされています。

CREATE EXTERNAL DATABASE 文を実行して Hologres に外部データベースを作成し、外部データベースを使用して外部データソースのメタデータを Hologres にロードできます。これにより、Hologres で内部データと外部データを管理し、統合レイクハウスアーキテクチャを使用して一元化されたメタデータ管理を実装できます。詳細については、「CREATE EXTERNAL DATABASE」をご参照ください。

外部テーブルを使用して一度に最大 512 パーティションの最大 200 GB の MaxCompute データをスキャンできるという制限が削除されました。

これにより、Hologres を使用して大量の MaxCompute データをクエリできます。仮想ウェアハウスインスタンスとサーバーレスコンピューティング機能を使用してリソースを分離できます。これにより、大規模なクエリが過剰なインスタンスリソースを消費し、他のクエリや書き込みジョブの実行に影響を与えるのを防ぎます。

V2.2.1

自動ロード機能は、3 層モデルを使用する MaxCompute プロジェクトをサポートしています。

MaxCompute の 3 層モデルのスキーマは、プロジェクト内のテーブル、リソース、および関数を分類するために使用されます。スキーマの詳細については、「スキーマ」をご参照ください。自動ロード機能の詳細については、「自動ロード」をご参照ください。

自動ロード機能は、メタデータの自動更新をサポートしています。

なし。

自動ロード機能は、MaxCompute 外部テーブルのスキーマ進化をサポートしています。

MaxCompute 外部テーブルのスキーマ進化には、列の削除、列の順序の変更、列のデータ型の変更などの操作が含まれます。詳細については、「自動ロード」をご参照ください。

Hologres のサービスロールを使用して MaxCompute にアクセスできます。

サービスロールは、信頼できるエンティティが Alibaba Cloud サービスである RAM ロールです。サービスロールは、Alibaba Cloud サービス全体で承認されたアクセスを実装できます。詳細については、「Hologres のサービスロール」をご参照ください。

V2.1

3 層モデルを使用する MaxCompute プロジェクトの指定されたスキーマのテーブルにデータを書き込むことができます。

MaxCompute の 3 層モデルのスキーマは、プロジェクト内のテーブル、リソース、および関数を分類するために使用されます。スキーマの詳細については、「スキーマ」をご参照ください。

HoloWeb コンソールで、3 層モデルを使用する MaxCompute プロジェクトの指定されたスキーマのテーブルにアクセスできます。

詳細については、「HoloWeb コンソールで MaxCompute にマッピングされた外部テーブルを作成する」をご参照ください。

V2.0

MaxCompute データに対する高速クエリのエンジンが Hologres Query Engine (HQE) にアップグレードされ、互換性と安定性が向上しました。

なし。

V1.3

外部テーブルを使用して、MaxCompute トランザクションテーブルのデータをクエリできます。

なし。

スキーマ進化状態の MaxCompute テーブルからデータを読み取ることができます。

MaxCompute で列が削除された場合、列の順序が変更された場合、または列のデータ型が変更された場合、テーブルはスキーマ進化状態になります。

Hologres と MaxCompute 間のデュアル署名認証がサポートされています。

詳細については、「デュアル署名モードで Hologres 外部テーブルを作成する」をご参照ください。

Bring Your Own Key (BYOK) に基づいて暗号化された MaxCompute テーブルにアクセスできます。

詳細については、「BYOK に基づいて暗号化された MaxCompute データをクエリする」をご参照ください。

V1.1.43

自動ロード機能がサポートされています。ビジネス要件に基づいてクエリされた MaxCompute テーブル、またはすべての MaxCompute テーブルに対して、外部テーブルを自動的に作成できます。

詳細については、「自動ロード」をご参照ください。

注意事項

Hologres で外部データベースまたは外部テーブルを使用して MaxCompute データに対するクエリを高速化する場合は、次の点に注意してください。

  • Hologres インスタンスが MaxCompute プロジェクトと同じリージョンにあることを確認する必要があります。そうでない場合、ネットワークの問題が発生する可能性があるため、データクエリの安定性を確保できません。

  • MaxCompute の内部テーブルのデータに対してのみクエリを高速化できますが、MaxCompute の外部テーブルまたはビューに対しては高速化できません。

  • MaxCompute テーブルのパーティションフィールドは、Hologres の通常のフィールドにマッピングされます。パーティションフィールドの値をフィルター条件として使用してデータをクエリできます。

  • MaxCompute テーブルから MAP 型または STRUCT 型のデータをクエリすることはできません。

  • DATETIME 型、TIMESTAMP 型、または DECIMAL 型の列をクラスタリングキー列として使用する MaxCompute のレンジクラスタテーブルはサポートされていません。

  • 標準ストレージを使用する MaxCompute データのみをクエリできますが、低頻度アクセス (IA) ストレージまたは長期ストレージを使用する MaxCompute データはクエリできません。