MaxCompute SQL 文または DataWorks の可視化機能を使用して、MaxCompute テーブルを作成および管理できます。可視化による方法は、SQL 文を使用する方法よりも便利です。このトピックでは、可視化による方法を使用して MaxCompute テーブルを作成および管理する方法について説明します。
注意事項
テーブル操作の原則
MaxCompute テーブルを作成および操作する際は、MaxCompute テーブル操作の基本要件に従う必要があります。たとえば、テーブル作成後にフィールドを削除することはできません。詳細については、「MaxCompute テーブル操作の制限事項」をご参照ください。
物理テーブルプロパティの変更
MaxCompute SQL コマンドを実行することで、MaxCompute テーブルの物理プロパティを変更できます。詳細については、「テーブル操作」をご参照ください。DataWorks は、MaxCompute テーブルを操作する際にアクセス制御を適用します。Resource Access Management (RAM) ユーザーがコマンドを実行してテーブルを操作する場合、一部のシナリオではエラーが報告されることがあります。詳細については、「MaxCompute データ権限制御の詳細」をご参照ください。
メタデータ更新の遅延
メタデータ操作には、一定の遅延が発生する場合があります。可視化による方法でテーブルを作成、更新、または削除した後、検索でテーブルが見つからなかったり、削除後も表示されたりすることがあります。このような場合は、データマップ に移動し、テーブルメタデータを更新して、操作結果を手動で同期できます。
事前準備
MaxCompute 計算リソースがワークスペースにバインドされていること。
DataStudio への移動
DataWorks コンソールにログインします。上部のナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションウィンドウで、 を選択します。表示されたページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発へ] をクリックします。
MaxCompute テーブルの作成
テーブルの作成方法
DataWorks の [テーブル管理] ディレクトリでテーブルを作成するか、特定のビジネスプロセス用にテーブルを作成できます。
テーブル管理からテーブルを作成
DataStudio の左側のナビゲーションウィンドウで、テーブル管理 を選択し、
アイコンをクリックしてテーブルを作成します。[テーブル管理] モジュールが左側のナビゲーションウィンドウに表示されていない場合は、追加できます。詳細については、「インターフェイスのカスタマイズ」をご参照ください。特定のビジネスプロセスからテーブルを作成
DataWorks はビジネスプロセスを使用してコードを整理および管理します。ビジネスプロセスに関連するテーブルを作成できます。ビジネスプロセスをまだ作成していない場合は、まず作成する必要があります。詳細については、「ビジネスプロセス」をご参照ください。ビジネスプロセスが存在する場合は、ビジネスプロセスを右クリックし、 を選択します。
重要ボタンが見つからない場合は、MaxCompute 計算リソースがワークスペースにバインドされているかどうかを確認してください。
テーブルの基本情報の設定
テーブルを作成すると、テーブル編集ページが表示されます。このページでは、DataWorks で DDL モードまたは 可視化 モードでテーブル情報を設定できます。
DDL モードでのテーブルの設定
テーブル編集ページの
アイコンをクリックし、標準の MaxCompute テーブル作成文を使用して MaxCompute テーブルスキーマを生成します。DDL を使用してテーブルスキーマを生成すると、DataWorks はテーブル編集ページの設定を自動的に入力します。タスクのコーディングに慣れている場合は、この方法を使用してください。重要テーブル名は、テーブル編集ページに移動する前に定義されます。DDL 作成コマンドでテーブル名を変更することはできません。変更すると、エラーが報告されます。
DDL モードでは、コマンドを使用したテーブルの物理プロパティの定義のみがサポートされます。DDL モードでテーブルが作成され、インターフェイスに設定が入力された後、テーブル編集ページでテーブルのビジネスプロパティを編集できます。
可視化インターフェイスを使用したテーブルの設定
テーブル編集ページの指示に従って、テーブルプロパティを設定します。便利な可視化操作を行いたい場合は、この方法を使用してください。次の例は、可視化インターフェイスを使用してテーブル情報を設定する方法を示しています。
[基本] プロパティを設定します。
主な設定項目を次の表に示します。設定項目
説明
中国語名
テーブルの表示名。
件名
DataWorks のサブジェクトはフォルダに相当します。テーブルの第 1 レベルと第 2 レベルのフォルダを定義します。ビジネス目的に基づいてテーブルを分類し、同じタイプのテーブルを同じフォルダにアタッチできます。
説明第 1 レベルと第 2 レベルのサブジェクトは、DataWorks でのテーブル管理用のフォルダとして表示され、テーブルをより適切に管理するのに役立ちます。[テーブル管理] ページでサブジェクトによって現在のテーブルをすばやく見つけることができます。利用可能なサブジェクトがない場合は、作成できます。詳細については、「テーブルサブジェクトの定義」をご参照ください。
[物理モデル] を設計します。
設定項目を次の表に示します。設定項目
説明
レイヤー
テーブルが属する物理データウェアハウスレイヤー。レイヤーは、データウェアハウスレイヤーを定義および管理するために使用されます。データウェアハウスレイヤーは、通常、オペレーショナルデータストア (ODS)、ディメンション (DIM)、データウェアハウス詳細 (DWD)、データウェアハウスサマリー (DWS)、およびアプリケーションデータサービス (ADS) に分けられます。ビジネス目的に基づいて、テーブルを適切なレイヤーにアタッチできます。
説明レイヤーをカスタマイズすることもできます。詳細については、「レイヤー管理」をご参照ください。
物理カテゴリ
テーブルの物理カテゴリを定義します。これにより、ビジネス利用の観点からテーブルをより詳細に分類できます。カテゴリには通常、基本ビジネスレイヤー、高度なビジネスレイヤーなどがあります。
説明物理カテゴリをカスタマイズすることもできます。詳細については、「カテゴリ管理」をご参照ください。
ライフサイクル
テーブルのライフサイクルを定義します。
MaxCompute テーブルのライフサイクルの詳細については、「ライフサイクル」をご参照ください。
MaxCompute テーブルのライフサイクルアクションの詳細については、「ライフサイクルアクション」をご参照ください。
パーティションタイプ
テーブルがパーティションテーブルか非パーティションテーブルかを定義します。パーティション化された MaxCompute テーブルとパーティション化されていない MaxCompute テーブルの詳細については、「パーティション」をご参照ください。
テーブルタイプ
テーブルが内部テーブルか外部テーブルかを定義します。内部テーブルのデータをクエリすると、実際のデータがインポートされるため、クエリが高速になります。外部テーブルのデータをクエリする場合、データをインポートせずにクエリできるため、メモリを節約できます。内部および外部 MaxCompute テーブルの詳細については、「テーブル」をご参照ください。
[テーブルスキーマ] を設計します。
主な設定項目を次の表に示します。設定
説明
フィールドタイプ
フィールドのデータ型を定義します。ドロップダウンリストからは、MaxCompute がサポートするデータ型のみを選択できます。MaxCompute のデータ型の詳細については、「データ型のエディション」をご参照ください。
フィールドセキュリティレベル
フィールドのセキュリティレベルを定義します。この設定項目は、MaxCompute プロジェクトでラベルベースのアクセス制御が有効になっている場合にのみ表示されます。MaxCompute フィールドのセキュリティレベルの詳細については、「ラベルベースのアクセス制御」をご参照ください。
プライマリキー
テーブルのビジネスプライマリキーを定義します。MaxCompute テーブルはプライマリキーをサポートしていないため、ここでのプライマリキーはビジネスディメンションからの管理にのみ使用されます。
MaxCompute テーブルのコミットと公開
テーブルスキーマを定義した後、開発環境と本番環境にコミットする必要があります。
MaxCompute テーブルをコミットおよび公開するプロセスは、ワークスペースモードによって異なります。
基本モード:テーブルを本番環境にのみコミットする必要があります。
標準モード:[ワークスペース管理者] または [O&M] ロールを持つユーザーのみがテーブルを本番環境に公開できます。テーブルを本番環境に公開するには、ユーザーに必要な権限を付与する必要があります。権限付与の詳細については、「ワークスペースメンバーの追加とロールおよび権限の管理」をご参照ください。
操作 | 説明 |
開発環境からロード | 開発環境から開発テーブルの情報をロードし、現在のページに表示します。 重要 この操作は、テーブルが開発環境にコミットされた後にのみ実行できます。この操作を実行すると、開発環境で作成されたテーブルの情報が現在のページのテーブル情報を上書きします。 |
開発環境にコミット | テーブルを DataWorks の開発環境にコミットします。これにより、開発環境に追加された MaxCompute 計算リソースに対応する MaxCompute プロジェクトに現在のテーブルが作成されます。コミットが成功すると、次の操作を実行できます。
|
本番環境からロード | 本番環境から本番テーブルの情報をロードし、現在のページに表示します。 重要 この操作は、テーブルが本番環境にコミットされた後にのみ実行できます。この操作を実行すると、本番環境で作成されたテーブルの情報が現在のページのテーブル情報を上書きします。 |
本番環境にコミット | テーブルを DataWorks の本番環境にコミットします。これにより、本番環境に追加された MaxCompute 計算リソースに対応する MaxCompute プロジェクトに現在のテーブルが作成されます。コミットが成功すると、次の操作を実行できます。
|
MaxCompute テーブルへのデータの書き込みとエクスポート
以下のセクションで説明するように、MaxCompute データをインポートおよびエクスポートできます。
MaxCompute テーブルへのデータの書き込み
データ統合タスクとMaxCompute ノードタスクを使用して、MaxCompute テーブルにデータを書き込むことができます。DataWorks は、ローカルデータを MaxCompute テーブルにインポートするためのデータアップロード機能も提供しています。
MaxCompute テーブルからのデータのエクスポート
DataStudio でデータをクエリした後、クエリ結果ページの [ダウンロード] をクリックして、テーブルデータをローカルコンピュータにダウンロードできます。デフォルトでは、一度に最大 10,000 件のデータレコードをダウンロードできます。テナント管理者とテナントセキュリティ管理者は、セキュリティセンターの[データクエリおよび分析制御] ページに移動して、一度にダウンロードできるデータレコードの最大数を設定できます。
エクスポートしたいデータレコード数が 10,000 を超える場合は、MaxCompute クライアントで Tunnel コマンドを実行してデータをエクスポートできます。
MaxCompute テーブル内のデータのクエリ
SQL 文を実行することで、ODPS SQL ノードまたはアドホッククエリ機能を使用して MaxCompute テーブル内のデータをクエリできます。
事前設定された権限
基本モードのワークスペースは、詳細なアクセス制御や開発環境と本番環境間のデータ分離をサポートしていません。このトピックでは、標準モードのワークスペースを例として使用します。
RAM ユーザーがメンバーとしてワークスペースに追加された後、事前設定されたデータアクセス権限は次のとおりです。
権限タイプ | 説明 |
開発環境の MaxCompute プロジェクトに対する権限 | DataWorks は、ワークスペースレベルの事前設定ロールと開発環境の MaxCompute エンジンロール間のマッピングを使用します。このマッピングにより、ワークスペースロールが割り当てられた RAM ユーザーに、マッピングされた開発エンジンロールの権限が付与されます。デフォルトでは、RAM ユーザーは開発環境の対応するエンジンプロジェクトに対する権限を持ちますが、本番環境の対応するエンジンプロジェクトに対する権限は持ちません。 |
本番環境の MaxCompute プロジェクトに対する権限 | スケジューリングアクセス ID として使用される RAM ユーザーは、本番環境の MaxCompute プロジェクトに対する高レベルの権限を持ちます。他の RAM ユーザーは、本番環境の MaxCompute プロジェクトに対する権限を持ちません。本番テーブルで操作を実行するには、セキュリティセンターに移動して必要な権限をリクエストする必要があります。 DataWorks はデフォルトの承認フローを提供し、管理者が承認フローをカスタマイズすることもできます。 |
MaxCompute データアクセス制御の詳細については、「MaxCompute データ権限制御の詳細」をご参照ください。
データアクセス動作
MaxCompute はプロジェクト間のテーブルクエリをサポートしています。したがって、DataStudio インターフェイスでプロジェクト名を指定することにより、DataWorks ワークスペース内の本番データをプロジェクト間でクエリできます。次の表に、プロジェクト間でテーブルにアクセスする方法と、さまざまなインターフェイスで実行に使用されるアカウントを示します。
[データ開発] では、異なる環境に追加された MaxCompute 計算リソースのバインド情報と、環境構成に使用される実行アカウントを表示できます。詳細については、「リソース管理」をご参照ください。
標準モードの DataWorks ワークスペースの場合、デフォルトではタスク実行者の個人 ID を使用して開発環境で MaxCompute タスクを実行します。Alibaba Cloud アカウントは、本番環境で MaxCompute タスクを実行するためのスケジューリングアクセス ID として使用されます。詳細については、「MaxCompute 計算リソースの追加」をご参照ください。
サンプルコード | 開発環境でのコード実行 (開発環境のデータ開発およびオペレーションセンター) | 本番環境でのコード実行 (本番環境のオペレーションセンター) |
開発プロジェクトの開発テーブルにアクセスする: | タスク実行者の個人 Alibaba Cloud アカウントを使用して開発テーブルにアクセスします。
| スケジューリングアクセス ID を使用して開発テーブルにアクセスします。 |
本番プロジェクトの本番テーブルにアクセスする: | タスク実行者の個人 Alibaba Cloud アカウントを使用して本番テーブルにアクセスします。 説明 本番データのセキュリティ制御のため、個人 Alibaba Cloud アカウントはデフォルトで本番テーブルにアクセスする権限を持ちません。セキュリティセンターに移動して権限をリクエストする必要があります。DataWorks はデフォルトの承認フローを提供し、管理者が定義したカスタム承認フローもサポートします。 | スケジューリングアクセス ID を使用して本番テーブルにアクセスします。 |
ターゲット環境 (開発環境など) で文を実行し、対応する環境のテーブルにアクセスします。この例では、テーブルは開発テーブルです。 | 文が開発環境で実行されると、タスク実行者の個人 Alibaba Cloud アカウントを使用して開発エンジンのターゲットテーブルにアクセスします。 | 文が本番環境で実行されると、スケジューリングアクセス ID を使用して本番エンジンのターゲットテーブルにアクセスします。 |
MaxCompute データ資産の表示
以下のセクションで説明するように、MaxCompute データ資産を表示できます。
テナント配下の本番テーブルの表示
DataWorks コンソールの DataStudio ページの[テナントテーブル] ペインで、現在のリージョンにある Alibaba Cloud アカウントの本番環境のすべてのテーブルを表示できます。
メタデータの表示
データマップに移動して、MaxCompute テーブルの詳細とメタデータを表示できます。
テーブルリネージの表示
データマップのテーブル詳細ページで、テーブルの上流と下流のリネージを表示できます。
ワークスペース内でテーブルを使用するタスクを見つけるには、コード検索機能を使用できます。
MaxCompute テーブルの一括管理
以下のセクションで説明するように、MaxCompute テーブルを一括で管理できます。
MaxCompute テーブルの一括削除
データマップの[マイデータ] ページに移動して、所有する複数のテーブルを削除できます。
本番環境のデータのセキュリティ制御のため、コマンドを直接実行して本番環境のテーブルを削除することはできません。別のユーザーが所有するテーブルを削除したい場合は、セキュリティセンターに移動して必要な権限をリクエストする必要があります。
テーブルオーナーの一括変更
データマップの[マイデータ] ページに移動して、所有する複数のテーブルのオーナーを同時に変更できます。
テーブルライフサイクルの一括変更
データマップの[マイデータ] ページに移動して、テーブルのライフサイクルを一括で変更できます。
単一テーブルのライフサイクルは [テーブル管理] で変更できます。詳細については、「MaxCompute テーブルの作成」をご参照ください。