テーブルは、MaxCompute のデータストレージの単位であり、 行と列で構成される 2 次元データ構造です。 各行はレコードを表し、各列は同じデータ型のフィールドを表します。 1 つのレコードには、1 つ以上の列を含めることができます。 列名とデータ型は、テーブルのスキーマで構成されます。

MaxCompute の各種コンピューティングタスクの操作オブジェクト (入力、出力) はテーブルです。 テーブルの作成、テーブルの削除、テーブルへのデータインポートを実行できます。
DataWorks のデータ管理モジュールを使用すると、MaxCompute テーブルに格納されるデータのライフサイクルを登録、編成、変更できます。また、ライフサイクルの管理権限を付与することもできます。 詳細は、「データ管理の概要 (data management overview)」をご参照ください。
MaxCompute v2.0 は、内部テーブルと外部テーブルの 2 種類のテーブルに対応しています。MaxCompute2.0 バージョンでは、新たに外部テーブルが使用できるようになりました。
  • 内部テーブルの場合、全データが MaxCompute テーブルに保存されます。テーブル内の列は、MaxCompute で対応しているデータ型であれば、どれでも構いません。
  • 外部テーブルの場合、データは MaxCompute に保存されずに、 OSSOTSに保存されます。 MaxCompute には、テーブルのメタ情報のみが記録されます。 MaxCompute の外部テーブルを使用すると、ビデオ、オーディオ、遺伝子情報、気象情報、地理情報などの非構造化データを OSS や Table Store で処理できます。

DUAL 表の使用:

  • Oracle などのデータベースとは異なり、MaxCompute では DUAL 表が自動的に作成されません。
  • テストテーブルとして DUAL 表を使い慣れている場合は、CREATE TABLE IF NOT EXISTS DUAL (DUMMY VARCHAR(1)); コマンドを手動で実行して、テスト用のフィールドが 1 つだけある DUAL という名前の空のテーブルを作成できます。
    現在、MaxCompute SQL と新バージョンのMapreduce で使用できる Set コマンドは、次の 2 通りに分けられます。
    • セッションレベル: 新しいデータ型 (Tinyint、Smallint、Int、Float、Varcha、 TIMESTAMP BINARY) を使用するには、テーブル文の前に set 文を追加する必要があります。
      set odps.sql.type.system.odps2=true;
      テーブル文と一緒に実行コマンドを送信します。
    • プロジェクトレベル: 新たにプロジェクトレベルの Set コマンドが使用できるようになりました。 プロジェクトオーナーは、必要に応じてプロジェクトを設定できます。
      setproject odps.sql.type.system.odps2=true;
  • DUAL 表の使い方は、Oracle の場合と同じです。select getdate() from dual; のように使用します。