DataWorks では、MaxCompute SQL 文またはビジュアルインターフェイスを使用して MaxCompute テーブルを作成および管理できます。ビジュアルインターフェイスの方が便利です。このトピックでは、ビジュアルインターフェイスを使用してテーブルを作成および管理する方法について説明します。
注意事項
-
テーブル操作の原則
MaxCompute テーブルを管理する際は、MaxCompute の基本的な操作要件に従ってください。たとえば、テーブルの作成後にフィールドを削除することはできません。詳細については、「テーブル操作の利用制限」をご参照ください。
-
物理テーブルプロパティの変更
MaxCompute SQL コマンドを実行することで、MaxCompute テーブルの物理プロパティを変更できます。詳細については、「テーブル操作」をご参照ください。DataWorks の権限制御により、RAM ユーザーがテーブル操作コマンドを実行するとエラーが発生することがあります。詳細については、「MaxCompute のデータ権限制御の詳細」をご参照ください。
-
メタデータ更新のレイテンシー
メタデータ操作には遅延が発生する可能性があります。テーブルの作成または更新後にテーブルが見つからない場合、またはテーブルの削除後もテーブルが表示される場合は、[Data Map] で テーブルのメタデータを更新 して、変更を手動で同期できます。
前提条件
DataStudio への移動
DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[DataStudioに移動] をクリックします。
MaxCompute テーブルの作成
テーブルの作成方法
テーブルは、テーブル管理ページまたは特定のワークフロー内で作成できます。
-
テーブル管理からの作成
DataStudio の左側メニューで、テーブル管理 を選択し、
アイコンをクリックしてテーブルを作成します。ナビゲーションペインにテーブル管理モジュールが表示されない場合は、「DataStudio のモジュール表示のカスタマイズ」を参照して追加してください。 -
ワークフロー内での作成
DataWorks は、ワークフローを使用してコードを整理および管理します。ビジネスに関連するテーブルをワークフロー内に作成できます。ワークフローがない場合は、まず ワークフローを作成 してください。ワークフローがある場合は、それを右クリックし、 を選択します。
重要ボタンが見つからない場合は、MaxCompute コンピューティングエンジンがワークスペースにバインドされているかどうかを確認してください。
テーブルの基本情報の設定
テーブルを作成すると、テーブルエディタータブが開きます。このタブでは、DDL モードまたは ビジュアルインターフェイスのいずれかを使用してテーブル情報を設定できます。
-
DDL モードでのテーブル設定
テーブルエディタータブの
アイコンをクリックし、標準の MaxCompute テーブル作成文 を使用して MaxCompute テーブルスキーマを生成します。DDL 文を使用してスキーマを生成すると、DataWorks はエディタータブの設定フィールドに自動的に入力します。この方法は、コードを記述することを好むユーザーに最適です。重要-
テーブル名はエディタータブを開く前に定義されます。DDL 文でテーブル名を変更することはできません。変更するとエラーが発生します。
-
DDL モードでは、テーブルの物理プロパティのみを定義できます。ビジネスプロパティは、DDL 文によって UI に情報が入力された後、テーブルエディタータブで編集できます。
-
-
ビジュアルインターフェイスを使用したテーブル設定
テーブルエディタータブのガイドに従って、テーブルプロパティを設定できます。この方法は、ビジュアルインターフェイスを好む場合に便利です。次の例は、ビジュアルインターフェイスを使用してテーブルを設定する方法を示しています。
-
[General] プロパティを設定します。主なパラメーターは以下のとおりです。
パラメーター
説明
[Display name]
テーブルの表示名。
[Theme]
DataWorks では、テーマはフォルダーのように機能し、ビジネス目的別にテーブルを分類できます。レベル 1 とレベル 2 のテーマを定義して、テーブルを整理できます。
説明これらのテーマは、テーブル管理 ページでテーブルを整理したり見つけたりするのに役立ちます。適切なテーマがない場合は、作成できます。詳細については、「テーブルテーマの定義」をご参照ください。
-
[Physical Model] を設計します。パラメーターは以下のとおりです。
パラメーター
説明
[Level]
テーブルのデータウェアハウス階層。レベルはデータウェアハウス階層を定義し、通常、オペレーショナルデータストア (ODS)、ディメンション (DIM)、データウェアハウス詳細 (DWD)、データウェアハウスサマリー (DWS)、およびアプリケーションデータサービス (ADS) に分かれています。ビジネス目的に基づいて、テーブルを適切なレベルに割り当てることができます。
説明レベルをカスタマイズすることもできます。詳細については、「レベル管理」をご参照ください。
[Category]
テーブルの物理的なカテゴリを定義します。これは、ビジネスの観点からより詳細な分類を提供します。一般的なカテゴリには、Basic Business、Advanced Business、Other があります。
説明物理カテゴリをカスタマイズすることもできます。詳細については、「カテゴリ管理」をご参照ください。
[Lifecycle]
テーブルのライフサイクル。
[Partition type]
テーブルがパーティションテーブルか非パーティションテーブルかを指定します。MaxCompute のパーティションテーブルと非パーティションテーブルの詳細については、「パーティション」をご参照ください。
[Table type]
テーブルが内部テーブルか外部テーブルかを指定します。内部テーブルは MaxCompute 内で独自のデータを管理するため、クエリが高速になることがよくあります。外部テーブルは MaxCompute の外部に保存されているデータを参照するため、ストレージ容量を節約できます。MaxCompute の内部テーブルと外部テーブルの詳細については、「テーブル」をご参照ください。
-
[Schema] を設計します。スキーマ設計ページは、フィールド定義とパーティション定義の 2 つのセクションに分かれています。フィールド定義セクションの上部には、[Add Field]、[Move Up]、[Move Down] ボタンがあります。[+ Add Field] リンクをクリックしてフィールドを追加できます。パーティション定義セクションには、[Date Partition Format] (例:yyyymmdd) や [Date Partition Granularity] などの追加パラメーターが含まれています。主なパラメーターは以下のとおりです。
パラメーター
説明
[Data type]
フィールドのデータ型。ドロップダウンリストからは、MaxCompute がサポートするデータ型のみを選択できます。MaxCompute のデータ型の詳細については、「データ型のエディション」をご参照ください。
[Field security level]
フィールドのセキュリティレベル。このパラメーターは、MaxCompute プロジェクトでラベルベースのアクセス制御が有効になっている場合にのみ表示されます。MaxCompute のフィールドセキュリティレベルの詳細については、「ラベルベースのアクセス制御」をご参照ください。
[Primary key]
テーブルのビジネスプライマリキー。MaxCompute はプライマリキーを強制しません。この設定はビジネス管理目的のみです。
-
MaxCompute テーブルのコミットとデプロイ
テーブルスキーマを定義した後、開発環境と本番環境にコミットする必要があります。
MaxCompute テーブルのコミットとデプロイのプロセスは、ワークスペースモード によって異なります:
-
基本モード:テーブルを本番環境にコミットするだけで済みます。
-
標準モード:[Workspace Administrator] または [O&M] ロールを持つユーザーのみが、テーブルを本番環境にデプロイできます。権限の付与方法の詳細については、「ワークスペースメンバーの追加とロールおよび権限の管理」をご参照ください。
|
アクション |
説明 |
|
[Load from development environment] |
開発環境からテーブル定義をロードし、現在のエディターに入力します。 重要
この操作は、テーブルが開発環境にコミットされた後にのみ使用できます。このアクションは、現在の設定をコミットされた定義で上書きします。 |
|
[Commit to development environment] |
現在のテーブル設定を DataWorks 開発環境にコミットし、関連する MaxCompute プロジェクトにテーブルを作成します。コミットが成功すると、次のことができます:
|
|
[Load from production environment] |
本番環境からテーブル定義をロードし、現在のエディターに入力します。 重要
この操作は、テーブルが本番環境にコミットされた後にのみ使用できます。このアクションは、現在の設定をコミットされた定義で上書きします。 |
|
[Commit to production environment] |
現在のテーブル設定を DataWorks 本番環境にコミットし、関連する MaxCompute プロジェクトにテーブルを作成します。コミットが成功すると、次のことができます:
|
MaxCompute テーブルへの書き込みとエクスポート
このセクションでは、MaxCompute テーブルへのデータの書き込みと、テーブルからのデータのエクスポート方法について説明します。
MaxCompute テーブルへのデータ書き込み
データ同期タスク または MaxCompute ノード を使用して、MaxCompute テーブルにデータを書き込むことができます。DataWorks は、MaxCompute テーブルへの ローカルデータのアップロード もサポートしています。
MaxCompute テーブルからのデータエクスポート
DataStudio でデータをクエリした後、結果パネルの [Download] ボタンをクリックして、データをローカルファイルにエクスポートできます。デフォルトでは、一度に最大 10,000 レコードをダウンロードできます。テナント管理者は、Security Center の データクエリおよび分析制御 ページでこの制限を変更できます。
10,000 レコード以上をエクスポートするには、MaxCompute クライアントを使用し、Tunnel コマンド を実行します。
MaxCompute テーブル内のデータのクエリ
ODPS SQL ノード または アドホッククエリ 機能を使用して、SQL 文 を実行することで MaxCompute テーブル内のデータをクエリできます。
デフォルトの権限
基本モード のワークスペースは、詳細な権限制御や開発環境と本番環境の分離をサポートしていません。以下の例は、標準モード のワークスペースを想定しています。
RAM ユーザーがワークスペースのメンバーとして追加されると、デフォルトで次のデータアクセス権限が付与されます。
|
権限タイプ |
説明 |
|
MaxCompute 開発プロジェクトの権限 |
DataWorks は、ワークスペースレベルのロールを MaxCompute エンジンのロールにマッピングします。ワークスペースロールを持つ RAM ユーザーは、開発エンジンの対応する権限を自動的に受け取ります。デフォルトでは、開発環境のプロジェクトに対する権限は持ちますが、本番環境のプロジェクトに対する権限は持ちません。 |
|
MaxCompute 本番プロジェクトの権限 |
デフォルトでは、スケジューリングアクセス ID のみが本番プロジェクトに対する権限を持ちます。他の RAM ユーザーは、本番テーブルを操作するために Security Center で権限を申請する必要があります。DataWorks は、デフォルトの承認ワークフローを提供し、管理者がそれをカスタマイズすることもできます。 |
MaxCompute のデータアクセス制御の詳細については、「MaxCompute のデータ権限制御の詳細」をご参照ください。
データアクセス時の動作
DataStudio では、テーブル名の前にプロジェクト名を付けることで、他のプロジェクトのデータをクエリできます。次の表では、クロスプロジェクトアクセスの方法と、さまざまな環境で使用されるアカウントについて説明します。
-
各環境に設定されている MaxCompute コンピューティングエンジンと実行アカウントを表示するには、DataStudio のコンピューティングリソースのバインドをご参照ください。詳細については、「コンピューティングエンジンの管理」をご参照ください。
-
標準モードの DataWorks ワークスペースでは、開発環境はデフォルトで [task executor] の個人 ID を使用します。本番スケジューリング環境では、スケジューリングアクセス ID と呼ばれる特定のクラウドアカウントが使用されます。詳細については、「MaxCompute コンピューティングエンジンのバインド」をご参照ください。
|
サンプルコード |
開発環境での実行 |
本番環境での実行 |
|
開発プロジェクト内の開発テーブルにアクセスする:
|
クエリは、タスク実行者の個人の Alibaba Cloud アカウントを使用して実行されます。
|
クエリは、スケジューリングアクセス ID を使用して実行されます。 |
|
本番プロジェクト内の本番テーブルにアクセスする:
|
クエリは、タスク実行者の個人の Alibaba Cloud アカウントを使用して実行されます。 説明
本番データのセキュリティ制御のため、個人の Alibaba Cloud アカウントは、デフォルトでは本番テーブルへのアクセス権を持っていません。Security Center で権限を申請する必要があります。DataWorks は、デフォルトの承認ワークフローを提供し、管理者がそれをカスタマイズすることもできます。 |
クエリは、スケジューリングアクセス ID を使用して実行されます。 |
|
対象環境 (例:開発環境) でステートメントを実行し、同じ環境内のテーブルにアクセスする:
|
開発環境で実行すると、クエリはタスク実行者の個人の Alibaba Cloud アカウントを使用して、開発エンジン内の対象テーブルにアクセスします。 |
本番環境で実行すると、クエリはスケジューリングアクセス ID を使用して、本番エンジン内の対象テーブルにアクセスします。 |
MaxCompute データ資産の表示
MaxCompute のデータ資産は、次の方法で表示できます。
テナント内の本番テーブルの表示
DataStudio の テナントテーブル モジュールには、現在のリージョンにある、お使いの Alibaba Cloud アカウントに属するすべての本番テーブルが一覧表示されます。
メタデータの表示
Data Map に移動して、MaxCompute テーブルの詳細とメタデータを表示します。
テーブルリネージの表示
Data Map のテーブル詳細ページで、テーブルの上流および下流のリネージを表示できます。
このテーブルを操作するワークスペース内のタスクを特定するには、コード検索 機能を使用できます。
MaxCompute テーブルの一括管理
複数の MaxCompute テーブルを一度に管理するには、次の方法があります。
MaxCompute テーブルの一括削除
Data Map の マイデータ に移動して、所有する複数のテーブルを削除します。
本番データのセキュリティ制御のため、コマンドを使用して本番テーブルを直接削除することはできません。所有していないテーブルを削除するには、Security Center でテーブル権限を申請する必要があります。
テーブル所有権の一括移管
Data Map の マイデータ に移動して、所有する複数のテーブルの所有権を移管します。
テーブルライフサイクルの一括変更
Data Map の マイデータ に移動して、所有する複数のテーブルのライフサイクルを変更します。
単一のテーブルのライフサイクルは、テーブル管理で変更できます。詳細については、「MaxCompute テーブルの作成」をご参照ください。