MaxComputeでは、外部テーブルを使用して、OSS (Object storage Service) などの外部ストレージシステムに保存されているデータをクエリおよび分析できます。 これにより、MaxCompute内部ストレージにデータをインポートすることなく、外部データを管理できます。 これにより、データ処理の柔軟性が向上します。
背景情報
MaxCompute SQLは、分散データ処理のエントリポイントを提供します。 これにより、エクサバイト単位のオフラインデータを処理および保存できます。 MaxComputeのコンピューティングフレームワークは、拡大したビッグデータビジネスと新しい使用シナリオから生じる要件を満たすように進化し続けています。 初期バージョンでは、MaxComputeは内部データを特殊な形式で処理する強力なコンピューティング機能を提供しています。 MaxComputeが外部データの処理をサポートするようになりました。
MaxCompute SQLを使用して、MaxCompute内部テーブルにCFile列ストア形式で格納されている構造化データを処理するようになりました。 データ計算のために外部ユーザーデータをMaxComputeテーブルにインポートするには、さまざまなツールを使用する必要があります。 ユーザデータは、テキスト及び非構造化データを含む。 たとえば、MaxComputeでOSSデータを処理するには、次のいずれかの方法を使用できます。
OSS SDKまたはその他のツールを使用して、OSSからデータをダウンロードします。 次に、MaxCompute Tunnelを使用して、ダウンロードしたデータをMaxComputeテーブルにインポートします。
OSS SDKを呼び出してOSSデータにアクセスするためのユーザー定義関数 (UDF) を作成します。
しかし、2つの方法には欠点がある。
1つ目の方法では、MaxComputeシステム外でのデータ転送操作が必要です。 大量のOSSデータを処理する必要がある場合、プロセスを高速化するために並列操作が必要です。 そのため、MaxComputeの大規模なコンピューティング機能を十分に活用することはできません。
2番目の方法では、UDFベースのアクセス権限が必要です。 また、開発者が並列ジョブの数を制御し、データ分割に関連する問題を処理する必要があります。
MaxComputeは、これらの問題に対処するための外部テーブルを提供します。 外部テーブルは、MaxCompute内部テーブルの外部に保存されているデータを処理するために使用されます。 簡単なDDLステートメントを実行して、MaxComputeで外部テーブルを作成できます。 次に、このテーブルを使用して外部データソースに関連付けることができます。 これにより、さまざまな形式のデータにアクセスして出力できます。 ほとんどの場合、標準のMaxComputeテーブルと同様に外部テーブルにアクセスできます。 MaxCompute SQLのコンピューティング機能を最大限に活用して、外部データを処理できます。
外部テーブルを使用する場合、このテーブルのデータはMaxComputeに保存されず、テーブルデータの保存に対して課金されません。
完全検索は外部テーブルでサポートされています。
TunnelコマンドとTunnel SDKは外部テーブルには使用できません。 Tunnelを使用して、MaxCompute内部テーブルにデータをアップロードできます。 OSS SDK for Pythonを使用して、データをOSSにアップロードし、そのデータをMaxComputeの外部テーブルにマップすることもできます。
DataWorksコンソールで外部テーブルを作成、検索、設定、および処理できます。 外部テーブル機能を使用して、データをクエリおよび分析することもできます。 詳細については、「外部テーブル」をご参照ください。
外部テーブルを使用する場合、MaxComputeのコンピューティングリソースの課金ルールに基づいて、MaxComputeのコンピューティング料金のみが課金されます。 外部テーブルのデータはMaxComputeに保存されません。 したがって、MaxComputeのストレージ料金は発生しません。 ストレージ料金の詳細については、データソースストレージの課金ルールに関する説明をご参照ください。 MaxComputeのパブリックエンドポイントを使用して外部テーブルにアクセスする場合、インターネットトラフィックとデータのダウンロードに対して課金されます。 MaxCompute料金の詳細については、「概要」をご参照ください。
MaxCompute外部テーブルを使用して外部データソースにアクセスする場合、これらのソースは、外部データソースの特定の課金方法に応じて、計算、アクセス、およびデータ転送にコストがかかる可能性があります。 詳細については、関連製品のドキュメントを参照してください。
例
ここでは、MaxCompute外部テーブルを使用して非構造化データを処理する方法について説明します。
OSSおよびTablestoreの非構造化データにアクセスするには、「OSSデータへのアクセス」および「Tablestoreデータへのアクセス」をご参照ください。
外部テーブルを使用してOSSデータにアクセスするには、MaxComputeにOSSへのアクセスを許可する必要があります。 権限付与は、RAM (Resource Access Management) コンソールで実行されます。 詳細については、「STS権限付与」をご参照ください。
MaxComputeの非構造化データ処理フレームワークでは、INSERTステートメントを使用してMaxComputeデータをOSSにエクスポートできます。 詳細については、「OSSへのデータの書き込み」をご参照ください。
さまざまなオープンソースフォーマットでデータを処理する方法の詳細については、「OSS外部テーブルでサポートされているオープンソースデータフォーマット」をご参照ください。
関連ドキュメント
MaxComputeは、OSS、Hologres、ApsaraDB RDS外部テーブルなど、さまざまな外部テーブルをサポートしています。 詳細については、「OSS外部テーブル」「Tablestore外部テーブルの作成」「Hologres外部テーブル」「
Apache Paimon外部テーブルを使用します。