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

:CreateTable

最終更新日:Oct 17, 2026

テーブルバケットの指定した名前空間に Iceberg テーブルを作成します。

注意事項

  • テーブル名の長さは 1~255 文字である必要があります。使用できる文字は小文字、数字、およびアンダースコア (_) のみです。アンダースコアで始めたり終えたりすることはできません。また、oss、acs、aliyun、alibaba、aws で始めることはできません。

  • テーブルを作成する前に、作成先のテーブルバケットと名前空間が存在することを確認してください。

アクセス許可

API

アクション

説明

CreateTable

oss:CreateTable

テーブルを作成します。

oss:PutTableData

データバケットに書き込みます。metadata パラメーターを指定した場合に必要です。

oss:PutTableEncryption

encryptionConfiguration パラメーターを指定した場合に必要です。

リクエスト構文

PUT /tables/{tableBucketARN}/{namespace} HTTP/1.1
Content-type: application/json
Host: cn-hangzhou.oss-tables.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue

{
   "name": "string",
   "format": "string",
   "encryptionConfiguration": {
      "sseAlgorithm": "string",
      "kmsKeyArn": "string"
   },
   "metadata": {
      "iceberg": {
         "schema": {
            "fields": [
               {
                  "id": number,
                  "name": "string",
                  "type": "string",
                  "required": boolean
               }
            ]
         },
         "partitionSpec": {
            "specId": number,
            "fields": [
               {
                  "sourceId": number,
                  "transform": "string",
                  "name": "string"
               }
            ]
         },
         "writeOrder": {
            "orderId": number,
            "fields": [
               {
                  "sourceId": number,
                  "transform": "string",
                  "direction": "string",
                  "nullOrder": "string"
               }
            ]
         },
         "properties": {
            "string": "string"
         }
      }
   }
}

パラメーター

パラメーター

タイプ

必須

例

説明

tableBucketARN

文字列

はい

acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket

URI で指定するテーブルバケットの ARN。フォーマット: acs:osstables:{region}:{uid}:bucket/{bucketName}。

namespace

文字列

はい

my_namespace

テーブルを含む名前空間。URI で指定します。

name

文字列

はい

my_table

テーブル名。名前空間内で一意である必要があり、長さは 1 ~ 255 文字です。使用できる文字は、小文字、数字、アンダースコア (_) のみです。アンダースコアで開始または終了したり、oss、acs、aliyun、alibaba、または aws で開始したりすることはできません。

format

文字列

はい

ICEBERG

テーブルのフォーマット。ICEBERG のみがサポートされています。

encryptionConfiguration

オブジェクト

いいえ

-

サーバー側の暗号化設定。省略した場合、テーブルはテーブルバケットから暗号化を継承します。子ノード: sseAlgorithm、kmsKeyArn。

sseAlgorithm

文字列

はい (encryptionConfiguration が指定されている場合)

AES256

暗号化アルゴリズム。AES256 のみがサポートされています。親ノード: encryptionConfiguration。

kmsKeyArn

文字列

いいえ

acs:kms:cn-hangzhou:1234567890:key/key-id

KMS キーの ARN。現在のバージョンではサポートされていません。空のままにする必要があります。親ノード: encryptionConfiguration。

metadata

オブジェクト

いいえ

-

Iceberg テーブルのメタデータ。スキーマ、パーティショニングルール、書き込み順序、プロパティを含みます。子ノード: iceberg。

iceberg

オブジェクト

はい (metadata が指定されている場合)

-

Iceberg テーブルのメタデータ。親ノード: metadata。子ノード: schema、partitionSpec、writeOrder、および properties。

schema

オブジェクト

いいえ

-

Iceberg テーブルのスキーマ定義。親ノード: iceberg。子ノード: fields。

fields

配列

はい (schema が指定されている場合)

-

列定義。各要素は 1 つの列を記述します。

  • id: 任意の整数。設定を推奨します。スキーマ内で一意である必要があります。partitionSpec の sourceId によって参照されます。

  • name: 必須。フィールド名。

  • type: 必須。フィールドのデータ型。サポートされている型はスキーマフィールドタイプに記載されています。

  • required: 任意のブール値。デフォルトは false です。true の場合、列は NULL 値を許可しません。

親ノード: schema

partitionSpec

オブジェクト

いいえ

-

テーブルのパーティション仕様。親ノード: iceberg。子ノード:

  • specId: 任意の整数。デフォルトは 0 です。

  • fields: パーティションフィールドの定義。詳細は次の行で説明します。

fields

配列

  • sourceId: 必須。スキーマ内のフィールド id と一致する必要があります。

  • transform: 必須。パーティション変換タイプ。サポートされている値は identity、void、year、month、day、hour、bucket[N]、および truncate[N] です。

  • fieldId: 任意の整数。

  • name: 必須。パーティションフィールドの名前。

親ノード: partitionSpec

writeOrder

オブジェクト

いいえ

-

書き込みの物理的なソート順。親ノード: iceberg。子ノード:

  • orderId: 任意の整数。デフォルトは 1 です。1 以上である必要があります。

  • fields: ソートフィールドの定義。詳細は次の行で説明します。

fields

配列

  • sourceId: 必須。スキーマ内のフィールド id と一致する必要があります。

  • transform: 必須。ソート変換タイプ。サポートされている値は identity、void、year、month、day、hour、bucket[N]、および truncate[N] です。

  • direction: 必須。asc (昇順) または desc (降順)。

  • nullOrder: 必須。nulls-first または nulls-last。

親ノード: writeOrder

properties

オブジェクト

いいえ

-

キーバリュー形式の Iceberg テーブルプロパティ。親ノード: iceberg。共通プロパティ: format-version (Iceberg フォーマットバージョン、1~3)、write.format.default (書き込みファイル形式、parquet など)、および write.target-file-size-bytes (ターゲットファイルサイズ)。

応答パラメーター

パラメーター

タイプ

例

説明

tableARN

文字列

acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket/table/table-id

作成されたテーブルの ARN。フォーマット: acs:osstables:{リージョン}:{UID}:bucket/{bucketName}/table/{tableId}。

versionToken

文字列

abc123def456

楽観的ロック用のバージョン トークン。

例

例 1:スキーマを持つテーブル

id と data の 2 つのフィールドからなるスキーマを持つテーブルを作成します。

リクエストの例

PUT /tables/acs%3Aosstables%3Acn-hangzhou%3A1234567890%3Abucket%2Fmy-table-bucket/my_namespace HTTP/1.1
Content-type: application/json
Host: cn-hangzhou.oss-tables.aliyuncs.com
Date: Thu, 10 Apr 2025 08:00:00 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/osstables/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c****

{
   "name": "basic_table",
   "format": "ICEBERG",
   "metadata": {
      "iceberg": {
         "schema": {
            "fields": [
               {"id": 1, "name": "id", "type": "long", "required": true},
               {"id": 2, "name": "data", "type": "string"}
            ]
         }
      }
   }
}

例 2:アイデンティティパーティションを持つテーブル

region フィールドにアイデンティティパーティションを持つテーブルを作成します。

リクエストの例

PUT /tables/acs%3Aosstables%3Acn-hangzhou%3A1234567890%3Abucket%2Fmy-table-bucket/my_namespace HTTP/1.1
Content-type: application/json
Host: cn-hangzhou.oss-tables.aliyuncs.com
Date: Thu, 10 Apr 2025 08:00:00 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/osstables/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c****

{
   "format": "ICEBERG",
   "metadata": {
      "iceberg": {
         "schema": {
            "fields": [
               {"id": 1, "name": "id", "type": "long", "required": true},
               {"id": 2, "name": "region", "type": "string"},
               {"id": 3, "name": "ts", "type": "timestamptz"}
            ]
         },
         "partitionSpec": {
            "specId": 0,
            "fields": [
               {"sourceId": 2, "transform": "identity", "name": "region"}
            ]
         }
      }
   },
   "name": "partitioned_table"
}

例 3:時間パーティションとバケットパーティションを持つテーブル

day パーティションとバケットパーティションを持つテーブルを作成します。

リクエストの例

PUT /tables/acs%3Aosstables%3Acn-hangzhou%3A1234567890%3Abucket%2Fmy-table-bucket/my_namespace HTTP/1.1
Content-type: application/json
Host: cn-hangzhou.oss-tables.aliyuncs.com
Date: Thu, 10 Apr 2025 08:00:00 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/osstables/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c****


{
   "format": "ICEBERG",
   "metadata": {
      "iceberg": {
         "schema": {
            "fields": [
               {"id": 1, "name": "id", "type": "long", "required": true},
               {"id": 2, "name": "data", "type": "string"},
               {"id": 3, "name": "ts", "type": "timestamptz"}
            ]
         },
         "partitionSpec": {
            "fields": [
               {"sourceId": 3, "transform": "day", "name": "ts_day"},
               {"sourceId": 1, "transform": "bucket[256]", "name": "id_bucket"}
            ]
         }
      }
   },
   "name": "multi_partition_table"
}

例 4:書き込み順序を持つテーブル

書き込みを ts の降順、次に id の昇順でソートするテーブルを作成します。

リクエストの例

PUT /tables/acs%3Aosstables%3Acn-hangzhou%3A1234567890%3Abucket%2Fmy-table-bucket/my_namespace HTTP/1.1
Content-type: application/json
Host: cn-hangzhou.oss-tables.aliyuncs.com
Date: Thu, 10 Apr 2025 08:00:00 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/osstables/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c****


{
   "format": "ICEBERG",
   "metadata": {
      "iceberg": {
         "schema": {
            "fields": [
               {"id": 1, "name": "id", "type": "long", "required": true},
               {"id": 2, "name": "ts", "type": "timestamptz"},
               {"id": 3, "name": "category", "type": "string"}
            ]
         },
         "writeOrder": {
            "orderId": 1,
            "fields": [
               {"sourceId": 2, "transform": "identity", "direction": "desc", "nullOrder": "nulls-last"},
               {"sourceId": 1, "transform": "identity", "direction": "asc", "nullOrder": "nulls-first"}
            ]
         }
      }
   },
   "name": "sorted_table"
}

例 5:指定されたプロパティを持つテーブル

Iceberg V2 フォーマット、デフォルトの書き込みフォーマット、ターゲットファイルサイズといったプロパティを持つテーブルを作成します。

リクエストの例

PUT /tables/acs%3Aosstables%3Acn-hangzhou%3A1234567890%3Abucket%2Fmy-table-bucket/my_namespace HTTP/1.1
Content-type: application/json
Host: cn-hangzhou.oss-tables.aliyuncs.com
Date: Thu, 10 Apr 2025 08:00:00 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/osstables/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c****

{
   "name": "v2_table",
   "format": "ICEBERG",
   "metadata": {
      "iceberg": {
         "schema": {
            "fields": [
               {"id": 1, "name": "id", "type": "long", "required": true},
               {"id": 2, "name": "name", "type": "string"}
            ]
         },
         "properties": {
            "format-version": "2",
            "write.format.default": "parquet",
            "write.target-file-size-bytes": "134217728"
         }
      }
   }
}

例 6:完全な設定を持つテーブル

スキーマ、パーティションスペック、書き込み順序、プロパティ、そして暗号化を持つテーブルを作成します。

リクエストの例

PUT /tables/acs%3Aosstables%3Acn-hangzhou%3A1234567890%3Abucket%2Fmy-table-bucket/my_namespace HTTP/1.1
Content-type: application/json
Host: cn-hangzhou.oss-tables.aliyuncs.com
Date: Thu, 10 Apr 2025 08:00:00 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/osstables/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c****


{
   "encryptionConfiguration": {
      "sseAlgorithm": "AES256"
   },
   "format": "ICEBERG",
   "metadata": {
      "iceberg": {
         "schema": {
            "fields": [
               {"id": 1, "name": "id", "type": "long", "required": true},
               {"id": 2, "name": "ts", "type": "timestamptz", "required": true},
               {"id": 3, "name": "region", "type": "string"},
               {"id": 4, "name": "amount", "type": "double"}
            ]
         },
         "partitionSpec": {
            "specId": 0,
            "fields": [
               {"sourceId": 2, "transform": "day", "name": "ts_day"},
               {"sourceId": 3, "transform": "identity", "name": "region"}
            ]
         },
         "writeOrder": {
            "orderId": 1,
            "fields": [
               {"sourceId": 2, "transform": "identity", "direction": "desc", "nullOrder": "nulls-last"},
               {"sourceId": 1, "transform": "identity", "direction": "asc", "nullOrder": "nulls-first"}
            ]
         },
         "properties": {
            "format-version": "2",
            "write.format.default": "parquet"
         }
      }
   },
   "name": "full_featured_table"
}

レスポンスの例

HTTP/1.1 200 OK
Server: AliyunOSS
x-oss-request-id: 5C06A3B67B8B5A3DA422****
x-oss-server-time: 3
Content-Type: application/json

{
   "tableARN": "acs:osstables:cn-hangzhou:1234567890:bucket/my-table-bucket/table/table_id",
   "versionToken": "aaabbb"
}

スキーマのフィールド型

プリミティブ型

Iceberg スキーマでサポートされているプリミティブ型は次のとおりです:

型

最小バージョン

説明

値の例

boolean

V1

ブール値。

true

int

V1

32 ビットの符号付き整数。

42

long

V1

64 ビットの符号付き整数。

1234567890

float

V1

32 ビットの IEEE 754 浮動小数点数。

3.14

double

V1

64 ビットの IEEE 754 浮動小数点数。

3.141592653589793

decimal(P,S)

V1

固定精度の小数値。P は精度 (総桁数、最大 38 桁) 、S はスケール (小数点以下の桁数) を表します。

decimal(10,2) → 12345678.90

date

V1

時刻やタイムゾーンを含まないカレンダー日付。

2025-04-10

time

V1

日付やタイムゾーンを含まない、マイクロ秒精度の時刻。

14:30:00.000000

timestamp

V1

タイムゾーンを含まない、マイクロ秒精度のタイムスタンプ。

2025-04-10T14:30:00.000000

timestamptz

V1

タイムゾーン情報を含み、UTC で格納されるマイクロ秒精度のタイムスタンプ。

2025-04-10T14:30:00.000000+00:00

timestamp_ns

V3

タイムゾーンを含まない、ナノ秒精度のタイムスタンプ。

2025-04-10T14:30:00.000000000

timestamptz_ns

V3

タイムゾーン情報を含み、UTC で格納されるナノ秒精度のタイムスタンプ。

2025-04-10T14:30:00.000000000+00:00

string

V1

可変長の UTF-8 文字列。

hello world

uuid

V1

128 ビットの汎用一意識別子 (UUID)。

550e8400-e29b-41d4-a716-446655440000

fixed[L]

V1

固定長のバイト配列。L はバイト単位の長さを表します。

fixed[16]

binary

V1

可変長のバイト配列。

-

V3 タイプ (timestamp_ns、timestamptz_ns、unknown、geometry、geography) を使用するには、Iceberg フォーマットバージョン 3 が必要です。OSS Tables はデフォルトで V2 を使用します。V3 タイプを使用するには、テーブルプロパティで "format-version": "3" を設定してください。

変換と互換性のあるソース型

変換

フォーマット

説明

互換性のあるソース型

identity

identity

Identity パーティション。ソースフィールドの生の値でパーティション分割します。

すべてのプリミティブ型

year

year

ソースの日付またはタイムスタンプから年を抽出してパーティション分割します。

date, timestamp, timestamptz, timestamp_ns, timestamptz_ns

month

month

ソースの日付またはタイムスタンプから年と月を抽出してパーティション分割します。

date, timestamp, timestamptz, timestamp_ns, timestamptz_ns

day

day

ソースの日付またはタイムスタンプから年、月、日を抽出してパーティション分割します。

date, timestamp, timestamptz, timestamp_ns, timestamptz_ns

hour

hour

ソースのタイムスタンプから年、月、日、時を抽出してパーティション分割します。

timestamp, timestamptz, timestamp_ns, timestamptz_ns

bucket[N]

bucket[N]

ハッシュバケット化。ソースフィールドの値をハッシュ化し、剰余演算を用いてデータを N 個のバケットに分割します。N は正の整数である必要があります。

int, long, decimal, date, time, timestamp, timestamptz, timestamp_ns, timestamptz_ns, string, uuid, fixed[L], binary

truncate[N]

truncate[N]

Truncate パーティション。整数値を幅 N に切り捨てるか、文字列を長さ N 文字に切り詰めます。N は正の整数である必要があります。

int, long, decimal, string, binary

void

void

Void パーティション。すべての値を null にマッピングします。通常、パーティションの変遷履歴を保持しつつ、パーティションフィールドを削除する目的で使用します。

すべての型

SDK

CreateTable は、以下の SDK で利用できます。

ossutil CLI

CreateTable に対応する ossutil コマンドは、create-table です。

エラーコード

エラーコード

HTTP ステータスコード

説明

BadRequestException

400

リクエストが無効、または不正な形式です。

InvalidTableName

400

無効なテーブル名です。テーブル名は 1 文字から 255 文字までの長さで、小文字、数字、およびアンダースコア (_) のみを含めることができます。アンダースコアで開始または終了することはできません。また、oss、acs、aliyun、alibaba、または aws で開始することはできません。

ForbiddenException

403

呼び出し元にはこのリクエストを実行する権限がありません。

NotFoundException

404

リクエストされたリソースが存在しません。

ConflictException

409

リクエストが以前の書き込み操作と競合しています。