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

MaxCompute:外部テーブルの概要

最終更新日:Jul 09, 2026

MaxCompute の外部テーブルを使用すると、OSS などの外部ストレージシステムに格納されているデータをクエリし、分析できます。

仕組み

MaxCompute SQL は、エクサバイト規模のオフラインデータを処理します。ビッグデータのワークロードが拡大するにつれて、データはデータレイク、リアルタイムデータウェアハウス、NoSQL データベースなど、さまざまなシステムに存在するようになっています。

MaxCompute は、分散ストレージとコンピュートのアーキテクチャにより、データウェアハウスとデータレイクの両方のシナリオをサポートします。外部データを処理するために、次の 2 つのモードを利用できます:

  • モード 1:インポートしてから計算

    データを MaxCompute にインポートします。構造化データは、SQL クエリまたはサードパーティエンジンからのアクセス用にテーブルとして保存されます。非構造化データも MaxCompute に保存して処理でき、I/O 効率を高められます。

  • モード 2:インプレースで計算

    MaxCompute SQL をコンピュートエンジンとして使用し、データレイクなどの外部ストレージ内のデータを直接クエリします。

MaxCompute は強力なデータウェアハウスガバナンスを提供し、外部ストレージシステムと統合します。外部テーブルは、外部データにアクセスするための主要な仕組みです。

  • 定義と仕組み

    • DDL ステートメントで、テーブル名、スキーマ、プロパティ、権限、ロケーション、および外部データにアクセスするためのプロトコルを定義します。これらのメタデータは MaxCompute に保存されます。

    • SQL クエリは、このメタデータを使用して外部データソースに接続し、メタデータの取得または更新を行い、データの読み取り、計算、書き込みを実行します。

  • ユースケース

    外部テーブルを使用すると、外部データに対する直接計算、MaxCompute のガバナンス内での外部データソース管理、構造化または非構造化のレイクデータのバッチ処理、データ交換、リアルタイムデータウェアハウスのアーカイブが可能になります。

課金

  1. ストレージ料金

    • ストレージ料金は発生しません。

    • 外部テーブルのデータは外部システムに保持され、MaxCompute にコピーされません。MaxCompute は外部テーブルに対してストレージ料金を課金しません。ストレージコストについては、外部データソースの課金ルールをご確認ください。

  2. コンピュート料金
    コンピュート料金は、MaxCompute のコンピュートリソースの課金ルールに従います:

    • サブスクリプションまたはリザーブド CU リソース:

      • 外部テーブルのコンピュート料金は、前払いのコンピュートリソース料金に含まれます。

    • 従量課金:

      外部テーブルを参照する SQL ジョブ (OSS、OTS、Hologres、HBase、JDBC (RDS など)、HDFS、OSSHDFS、および Object Table ジョブを含む) が課金されます。

  3. ネットワーク料金

    MaxCompute のパブリックエンドポイント経由で外部テーブルに接続すると、パブリックネットワークのトラフィック料金とダウンロード料金が発生します。詳細については、課金対象項目と課金方法をご参照ください。

  4. 外部データソース料金

    外部データソースでは、コンピュート料金、アクセス料金、またはデータ転送料金が課金される場合があります。該当サービスの課金ルールをご確認ください。

適用範囲

  • 現在、Tunnel および Tunnel SDK は外部テーブルをサポートしていません。Tunnel を使用してデータを MaxCompute の内部テーブルにアップロードするか、OSS Python SDK を使用して OSS にアップロードし、MaxCompute の外部テーブルでデータをマッピングしてください。

  • 外部テーブルは外部データソースへのデータ書き込みをサポートしますが、書き込み機能と整合性は外部システムの制約の影響を受けます:

    • Hologres: MaxCompute は JDBC 経由で Hologres のメタデータにアクセスするため、書き込みにおけるトランザクションの原子性を保証できません。MaxCompute SQL エンジンは Hologres Pangu データを直接読み取れますが、書き込むことはできません。分散された複数プロセスによる並列書き込みは複雑であるため、MaxCompute は Hologres に対する INSERT OVERWRITE をサポートしていません。ジョブが失敗した場合、データが部分的に書き込まれる可能性があります。

    • HDFS: HMS にも基づいています。HDFS への書き込みでは、低い確率で不整合が発生する可能性があります。

    • OSS: OSS 外部テーブルの書き込みでは、書き込み不完全となる確率を低減するために .odps メタデータファイルを使用します。エンジン互換性のために .odps メタデータファイルを無効化した場合も、低い確率で書き込みが不完全となる可能性があります。

  • INSERT OVERWRITE を使用して外部データを書き込む場合、MaxCompute は最初に新しいデータを書き込み、その後 DDL のコミットフェーズでテーブルまたはパーティション内の既存データを削除し、新しいデータに置き換えます。削除されたデータはロールバックできません。書き込み前にデータをバックアップし、書き込み完了後に結果を検証してください。問題が発生した場合は、フル書き込みを再実行してください。

関連ドキュメント

サポートされている外部テーブル

MaxCompute は、OSS、Hologres、RDS などのサービス向けの外部テーブルをサポートしています:

外部テーブルの例

次の例では、MaxCompute の外部テーブルを使用して非構造化データを処理する方法を示します:

よくある質問