MaxCompute は、Alibaba Cloud ビッグデータプラットフォームのコアコンピューティングコンポーネントです。 MaxCompute は、強力な計算能力を持ち、大量のノード上で並列計算タスクをスケジュールすることができます。 また、分散コンピューティングのフェイルオーバー、再試行、およびその他の機能に対する実証済みの処理管理メカニズムも提供します。

分散データ処理の入力として、MaxCompute SQL はエクサバイトのオフラインデータの迅速な処理と保存を強力にサポートします。 ビッグデータビジネスの継続的な拡大に伴い、データの新しい使用例が数多く出現しており、MaxCompute のコンピューティングフレームワークも進化しています。 強力な計算能力へのアクセスは、特殊な形式の内部データではなく、外部データソースにも徐々に広がっています。

現段階で、MaxCompute SQL は内部の MaxCompute テーブルに cfile 形式で構造化データを保存します。 MaxCompute テーブル以外のユーザーデータ (テキスト、各種の非構造化データを含む) の場合、最初にさまざまなツールを使用してデータを MaxCompute テーブルにインポートしてから計算する必要があります。 データインポートのプロセスには大きな制限があります。 たとえば、MaxCompute で OSS データを処理するには、2 つの一般的な方法を使用できます。
  • OSS SDK または他のツールを使用して OSS からデータをダウンロードするために、MaxCompute トンネルを介してデータをテーブルにインポートします。
  • UDF を作成し、UDF 内で直接 OSS SDK を呼び出して OSS データにアクセスします。
しかし、上記 2 つの方法には短所があります。
  • MaxCompute システムの外部にデータを中継する必要があります。 OSS のデータ量が大きすぎると、並行処理を使用してプロセスの高速化を検討する必要があり、MaxCompute の大規模コンピューティング機能を最大限に活用することはできません。
  • 2 番目のタイプは通常、UDF ネットワークアクセスに適用する必要があります。開発者がジョブの同時実行数とデータの分割方法を制御することも問題です。

ここでは、外部テーブルの機能について説明します。外部テーブルは、既存の MaxCompute テーブル以外のデータを処理できるように設計されています。 このフレームワークでは、MaxCompute で外部テーブルを作成するために単純な DDL 文を使用します。 その後、MaxCompute テーブルを外部データソースと関連付けて、さまざまなデータアクセスと出力機能を提供できます。 外部テーブルを作成した後、(ほとんどの場合) MaxCompute テーブルと同じように使用して、MaxCompute SQL の強力な計算機能を最大限に活用できます。

外部テーブル機能を使用すると、外部テーブルのデータはコピーされずに MaxCompute に保存されます。

ここでは、さまざまなデータを 2 次元にカバーします。

さまざまなデータ記憶媒体: プラグインフレームワークは、OSS、OTS などの多種多様なデータ記憶媒体に接続するために使用することができます。

多様なデータ形式: MaxCompute テーブルは構造化データですが、外部テーブルは構造化データに限定されません。

  • 画像、オーディオ、ビデオファイル、生バインドなど、構造化データはありません。
  • CSV、TSV などの半構造化データは、特定のスキーマテキストファイルを意味します。 orc/parquet ファイルや hbase/OTS データなどの cfile 以外のファイルの構造化データです。

非構造化データの処理についての洞察を得られるよう、いくつかの例を挙げます。