このトピックでは、DataStudio についてよく寄せられる質問への回答を提供します。
リソース
PyODPS
EMR Spark
ノードとワークフロー
テーブル
操作ログと操作ログの保存期間
バッチ操作
Power BI と MaxCompute の接続
API 呼び出し
その他
PyODPS ノードでサードパーティ製パッケージを参照する場合、どの種類のリソースグループを使用できますか?
専用スケジューリングリソースグループを使用します。詳細については、「PyODPS ノードを使用してサードパーティ製パッケージを参照する」をご参照ください。
クエリされたテーブルデータをダウンロードできるかどうかを制御するにはどうすればよいですか?
DataWorks からデータをダウンロードする前に、ダウンロード機能が有効になっていることを確認する必要があります。ダウンロードエントリポイントがない場合、ワークスペースではダウンロード機能は有効になっていません。 RAM ユーザーを使用していてダウンロード機能を使用する場合は、Alibaba Cloud アカウントの所有者またはワークスペース管理者に連絡して、ワークスペースページでこの機能を有効にしてください。
DataStudio でデータをクエリした後、次の図に示すように、クエリ結果タブの右下隅にダウンロードエントリポイントが表示されます。
コンピューティングエンジンの制限により、DataStudio からダウンロードできるデータレコードは最大 10,000 件までです。
10,000 件を超えるデータレコードをダウンロードするにはどうすればよいですか?
MaxCompute の Tunnel コマンドを使用します。詳細については、「SQLTask と Tunnel を使用して大量のデータをエクスポートする」をご参照ください。
E-MapReduce (EMR) クラスタが登録されているワークスペースにテーブルを作成すると、「call emr exception」というエラーメッセージが表示されます。どうすればよいですか?
考えられる原因: EMR クラスタをホストする Elastic Compute Service (ECS) インスタンスのセキュリティグループのセキュリティ設定が構成されていません。EMR クラスタをワークスペースに登録するときは、EMR クラスタをホストする ECS インスタンスのセキュリティグループに次のルールを追加する必要があります。そうしないと、「call emr exception」というエラーメッセージが表示される場合があります。
EMR クラスタをホストする ECS インスタンスのセキュリティグループのセキュリティ設定が構成されていません。EMR クラスタをワークスペースに登録するときは、EMR クラスタをホストする ECS インスタンスのセキュリティグループに次のルールを追加する必要があります。そうしないと、「call emr exception」というエラーメッセージが表示される場合があります。
アクション: 許可
プロトコルタイプ: カスタム TCP
ポート範囲: 8898/8898
認証オブジェクト: 100.104.0.0/16
解決策: EMR クラスタをホストする ECS インスタンスのセキュリティグループのセキュリティ設定を確認します。セキュリティ設定に上記のルールが含まれていない場合は、ルールをセキュリティグループに追加します。
ノードでリソースを参照するにはどうすればよいですか?
[スケジュールされたワークフロー] ペインで、ノードで参照するリソースを見つけ、リソース名を右クリックして、[リソースパスの挿入] を選択します。
DataWorks にアップロードされたリソースをダウンロードするにはどうすればよいですか?
[スケジュールされたワークフロー] ペインで、ダウンロードするリソースを見つけ、リソース名を右クリックして、[以前のバージョンの表示] を選択します。[バージョン] ダイアログボックスで、[アクション] 列の [ダウンロード] をクリックします。
サイズが 30 MB を超えるリソースをアップロードするにはどうすればよいですか?
Tunnel コマンドを使用してリソースをアップロードします。次に、後で使用する [MaxCompute リソース] ペインで DataStudio にリソースを追加します。詳細については、「odpscmd を使用して DataWorks にアップロードされたリソースを使用するにはどうすればよいですか?」をご参照ください。
odpscmd を使用して DataWorks にアップロードされたリソースを使用するにはどうすればよいですか?
odpscmd を使用して DataWorks にアップロードされたリソースを使用する場合は、[MaxCompute リソース] ペインで DataStudio にリソースを追加します。
オンプレミス マシンから JAR パッケージを JAR リソースとして DataWorks にアップロードし、アップロードされたリソースをノードで参照するにはどうすればよいですか?
DataStudio ページで、JAR パッケージを JAR リソースとして DataWorks にアップロードします。リソースをノードで参照する場合は、[スケジュールされたワークフロー] ペインでリソースを見つけ、リソース名を右クリックして、[リソースパスの挿入] を選択します。ノードのコードの先頭にコメントが自動的に追加され、ノードはリソース名に基づいてコード内のリソースを直接参照できます。
たとえば、Shell ノードで test.jar リソースを参照するとします。[リソースパスの挿入] を選択すると、##@resource_reference{"test.jar"} というコメントが Shell ノードのコードの先頭に自動的に追加されます。
DataWorks で MaxCompute テーブルリソースを使用するにはどうすればよいですか?
コードレス ユーザーインターフェース (UI) を使用して MaxCompute テーブルリソースを DataWorks にアップロードすることはできません。例: テーブルリソースを参照する を参照して、テーブルリソースを参照する方法を確認できます。DataWorks で MaxCompute テーブルリソースを使用する場合は、次の手順を実行します。
MaxCompute で次の SQL 文を実行して、テーブルをリソースとして追加します。詳細については、「リソース操作」トピックの リソースの追加 セクションを参照してください。
add table <table_name> [partition (<spec>)] [as <alias>] [comment '<comment>'][-f];DataWorks の DataStudio ページで、Python リソースを作成し、Python リソースを使用して MaxCompute に追加されたテーブルリソースを見つけます。この例では、
get_cache_table.pyという名前のリソースが作成されます。Python コードの詳細については、「例: テーブルリソースを参照する」トピックの 1. UDF を記述する セクションを参照してください。
DataWorks の DataStudio ページで、関数を作成します。この例では、
table_udfという名前の関数が作成されます。関数の構成タブで、次のパラメータを構成します。
クラス名: 値を
get_cache_table.DistCacheTableExampleに設定します。リソース: ドロップダウンリストから
get_cache_table.pyを選択します。テーブルリソースは [コードエディタ] に追加する必要があります。
「例: テーブルリソースを参照する」トピックの 3. UDF を使用する セクションに記載されている手順に従って、テストデータを作成し、関数を呼び出します。
DataWorks でタスクをコミットしたときに「デフォルトまたは使用可能なリソースグループが設定されていません」というエラーメッセージが表示された場合、リソースグループをどのように構成すればよいですか?
この問題を解決するには、目的のノードの構成タブの右側ナビゲーションウィンドウにある [プロパティ] タブの「リソースグループ」セクションで、[リソースグループ] ドロップダウンリストからスケジューリング用のリソースグループを選択します。スケジューリング用のリソースグループがない場合は、次の操作を実行して、スケジューリング用のリソースグループを目的のワークスペースに関連付けます。
DataWorks コンソール にログインします。上部ナビゲーションバーで、目的のリージョンを選択します。左側のナビゲーションペインで、[リソースグループ] をクリックします。
ページで、作成したリソースグループを見つけ、[アクション] 列の をクリックします。
[ワークスペースの関連付け] パネルで、作成したワークスペースを見つけ、[アクション] 列の [関連付け] をクリックします。
上記操作が完了したら、目的のノードの [プロパティ] タブに移動し、[リソースグループ] ドロップダウンリストからスケジューリングに関連付けられたリソースグループを選択します。
Python リソースは別の Python リソースを呼び出すことができますか?
Python リソースは、同じワークスペース内の別の Python リソースを呼び出すことができます。
PyODPS はサードパーティ製パッケージを使用するためにカスタム関数を呼び出すことができますか?
DataFrame の map メソッドを使用して test 関数を呼び出したくない場合は、PyODPS を使用してカスタム関数を呼び出し、サードパーティ製パッケージを使用できます。詳細については、「PyODPS ノードでサードパーティ製パッケージを参照する」をご参照ください。
PyODPS 3 ノードで pickle ファイルを呼び出すと、「_pickle.UnpicklingError: invalid load key, '\xef.」というエラーメッセージが表示されます。どうすればよいですか?
PyODPS 3 ノードのコードに特殊文字が含まれているかどうかを確認します。コードに特殊文字が含まれている場合は、コードを ZIP パッケージに圧縮し、パッケージを DataWorks にアップロードしてから、パッケージを解凍して pickle ファイルを呼び出します。
EMR クラスタで Kerberos 認証が有効になっている場合、EMR Spark ノードで YARN クラスタモードで spark-submit を実行すると、「DlfMetaStoreClientFactory not found?」というエラーメッセージが表示された場合はどうすればよいですか?
エラーメッセージ:
Class com.aliyun.datalake.metastore.hive2.DlfMetaStoreClientFactorynot found原因: YARN クラスターモードで Kerberos 認証が有効になっている EMR クラスターで spark-submit を実行してジョブを送信すると、Spark ドライバーのクラスパスが特定のディレクトリにある JAR ファイルを含むように自動的に拡張されません。 その結果、Spark ジョブの実行時にエラーが発生します。 詳細については、「よくある質問」をご参照ください。
解決策: EMR Spark ノードのクラスパスに DLF の依存関係を追加します。DLF の依存関係は、DLF のインストールディレクトリにあります。
--jarsパラメーターを追加します。このようにして、Spark の JAR パッケージに加えて、/opt/apps/METASTORE/metastore-current/hive2ディレクトリにある JAR パッケージも spark-submit コマンドに追加されます。次のコードは、DLF 関連パッケージを指定する方法の例を示しています。
重要YARN クラスタモードでは、
--jarsパラメーターに構成された依存関係はコンマ (,) で区切る必要があります。spark-submit --deploy-mode cluster --class org.apache.spark.examples.SparkPi --master yarn --jars /opt/apps/METASTORE/metastore-current/hive2/aliyun-java-sdk-dlf-shaded-0.2.9.jar,/opt/apps/METASTORE/metastore-current/hive2/metastore-client-common-0.2.22.jar,/opt/apps/METASTORE/metastore-current/hive2/metastore-client-hive2-0.2.22.jar,/opt/apps/METASTORE/metastore-current/hive2/metastore-client-hive-common-0.2.22.jar,/opt/apps/METASTORE/metastore-current/hive2/shims-package-0.2.22.jar /opt/apps/SPARK3/spark3-current/examples/jars/spark-examples_2.12-3.4.2.jarDLF 関連パッケージが指定されている場合は、DLF および OSS へのアクセス用に AccessKey ペアを構成します。そうでない場合、次のいずれかのセキュリティトークンサービス (STS) 認証関連エラーメッセージが返されます。
Process Output>>> java.io.IOException: Response{protocol=http/1.1, code=403, message=Forbidden, url=http://xxx.xxx.xxx.xxx/latest/meta-data/Ram/security-credentials/}at com.aliyun.datalake.metastore.common.STSHelper.getEMRSTSToken(STSHelper.java:82)
タスクを構成します。ノード構成タブの右側にあるナビゲーションウィンドウで、[詳細設定] をクリックし、次のパラメーターを構成します。設定をグローバルに適用する場合は、EMR コンソールの EMR クラスタ詳細ページの [サービス] タブでグローバル Spark パラメーターを構成します。 "spark.hadoop.dlf.catalog.akMode":"MANUAL", "spark.hadoop.dlf.catalog.accessKeyId":"xxxxxxx", "spark.hadoop.dlf.catalog.accessKeySecret":"xxxxxxxxx"
MaxCompute リソースを削除するにはどうすればよいですか?
基本モードのワークスペースで MaxCompute リソースを削除するには、リソース名を右クリックし、[削除] を選択します。標準モードのワークスペースで MaxCompute リソースを削除するには、開発環境でリソースを削除してから、本番環境でリソースを削除する必要があります。次の例は、開発環境と本番環境で MaxCompute リソースを削除する方法を示しています。
標準モードの DataWorks ワークスペースでは、開発環境は本番環境から分離されています。DataStudio ページでリソースを削除すると、リソースは開発環境からのみ削除されます。削除操作を本番環境にデプロイした後にのみ、同じリソースが本番環境から削除されます。
開発環境からリソースを削除する: 目的のワークフローで、 を選択し、削除するリソースの名前を右クリックして、[削除] を選択します。削除メッセージで、[OK] をクリックします。
本番環境からリソースを削除する: リソースの削除操作が本番環境にデプロイされた後にのみ、リソースを本番環境から削除できます。[DataStudio] ページで、削除するリソースの構成タブの右上隅にある [デプロイ] をクリックします。デプロイタスクの作成ページで、変更タイプ パラメーターをオフラインに設定し、前の手順で削除されたリソースのパッケージを見つけ、[アクション] 列の [デプロイ] をクリックします。デプロイタスクの作成ダイアログボックスで、[デプロイ] をクリックします。
[デプロイ] をクリックすると、リソースは本番環境から削除されます。
ノードが削除された後、ノードのインスタンスにはどのような影響がありますか?
DataStudio ページで、左側のナビゲーションウィンドウの [ごみ箱] をクリックします。 [ごみ箱] ウィンドウで、回復するノードを見つけ、ノード名を右クリックし、[復元] を選択します。
ノードのバージョンを表示するにはどうすればよいですか?
バージョンを表示するノードを見つけ、ノード名をダブルクリックしてノードの構成タブに移動します。次に、右側ナビゲーションウィンドウの [バージョン] をクリックします。[バージョン] タブで、ノードのバージョンを表示できます。
コードをコミットした後にのみ、バージョンが生成されます。

ノードがコミットされているかどうかを確認するにはどうすればよいですか?
ノードグループを使用します。詳細については、「ノードグループを作成および管理する」をご参照ください。
ノードが変更、コミット、および本番環境にデプロイされた後、本番環境にある既存の障害のあるノードは上書きされますか?
Migration Assistant を使用します。詳細については、「Migration Assistant」をご参照ください。
ノードのコードをエクスポートするにはどうすればよいですか?
ノードがコミットされているかどうかを確認するには、[スケジュールされたワークフロー] ペインで目的のワークフローを見つけ、ワークフローを展開して、このワークフロー内の各ノードのステータスを表示します。
アイコンがノードの左側に表示されている場合、ノードはコミットされています。そうでない場合、ノードはコミットされていません。
ワークフロー内のすべてのノードのプロパティを一度に設定できますか?
いいえ、ワークフロー内のすべてのノードのプロパティを設定することはできません。DataWorks では、ワークフローのプロパティを設定することはできません。ワークフローに複数のノードが含まれている場合は、ノードのプロパティを1つずつ設定する必要があります。たとえば、ワークフローに 20 個のノードが含まれている場合は、これらのノードのプロパティを 1 つずつ設定する必要があります。
ノードが削除された後、ノードのインスタンスへの影響は何ですか?
スケジューリングシステムは、ノードの時間プロパティに基づいて、ノードごとに毎日 1 つ以上のインスタンスを生成します。 ノードが一定期間実行された後に削除された場合、そのインスタンスは保持されます。 ただし、ノードが削除された後は、インスタンスは実行に失敗します。 これは、必要なコードが使用できないためです。
ワークフロー内のすべてのノードのプロパティを一度に構成できますか?
いいえ、できません。ワークフロー内の各ノードのプロパティは個別に構成する必要があります。
ワークフローを複製するにはどうすればよいですか?
DataStudio ページに移動し、左側のナビゲーションウィンドウで [Workspace Tables] をクリックします。 [Workspace Tables] ペインで、テーブルを作成します。
本番環境のテーブルにフィールドを追加するにはどうすればよいですか?
Alibaba Cloud アカウントを使用している場合は、DataStudio ページの [ワークスペース テーブル] ペインでテーブルにフィールドを追加し、本番環境にコミットします。
RAM ユーザーを使用している場合は、RAM ユーザーの O&M エンジニアまたはワークスペース管理者ロールの権限をリクエストし、RAM ユーザーを使用して DataStudio ページの [ワークスペース テーブル] ペインでテーブルにフィールドを追加してから、本番環境にコミットする必要があります。
視覚的にテーブルを作成するにはどうすればよいですか?
DataStudio ページで、開発環境からテーブルを削除できます。
本番環境からテーブルを削除するには、次のいずれかの方法を使用します。
データマップ に移動し、[マイデータ] タブでテーブルを削除します。
ODPS SQL ノードを作成し、ノードの [構成] タブで DROP 文を入力して実行します。ODPS SQL ノードの作成方法の詳細については、「MaxCompute SQL タスクを開発する」をご参照ください。DROP 文の構文の詳細については、「テーブル操作」をご参照ください。

本番環境にあるテーブルにフィールドを追加するにはどうすればよいですか?
DataStudio ページに移動し、[スケジュールされたワークフロー] ペインの [インポート] 機能を使用してデータをインポートします。
EMR クラスターでテーブルを作成すると、次のエラーメッセージ call emr exception が表示されます。どうすればよいですか?
考えられる原因:
EMR クラスタをホストする ECS インスタンスのセキュリティグループにセキュリティ設定が構成されていません。 ワークスペースに EMR クラスタを登録する場合は、EMR クラスタをホストする ECS インスタンスのセキュリティグループに次のルールを追加する必要があります。 そうしないと、「call emr exception」というエラーメッセージが表示される場合があります。
アクション: 許可
プロトコルタイプ: カスタム TCP
ポート範囲: 8898/8898
承認オブジェクト: 100.104.0.0/16
解決策:
EMR クラスタをホストする ECS インスタンスのセキュリティグループのセキュリティ設定を確認します。 セキュリティ設定に上記のルールが含まれていない場合は、セキュリティグループにルールを追加します。
オンプレミス マシンから MaxCompute テーブルにデータをアップロードするにはどうすればよいですか?
標準モードのワークスペースで、DataStudio ページで開発環境から本番環境のデータをクエリする場合、プロジェクト名.テーブル名 形式でクエリするデータのテーブルを指定します。
基本モードから標準モードにスペックアップされたワークスペースでは、DataStudio ページで開発環境から本番環境のデータをクエリする場合、最初にプロデューサー ロールの権限をリクエストし、プロジェクト名.テーブル名 フォーマットでクエリするデータのテーブルを指定する必要があります。権限のリクエスト方法の詳細については、「テーブルに対する権限をリクエストする」をご参照ください。
DataStudio ページの開発環境から本番環境にあるデータをクエリするにはどうすればよいですか?
DataStudio ページの左側のナビゲーションウィンドウで、[ランタイムログ] をクリックします。[ランタイムログ] ペインで、過去の操作ログを表示できます。
EMR クラスタにテーブルを作成すると、「call emr exception」というエラーメッセージが表示されます。どうすればよいですか?
デフォルトでは、DataStudio ページの操作ログは 3 日間保持されます。
本番環境の Operation Center におけるログとインスタンスの保持期間については、「スケジューリング用のリソースグループと、そのようなリソースグループで実行されるノードインスタンスのログはどのくらいの期間保持されますか?」をご参照ください。
DataStudio ページで履歴操作ログをクエリするにはどうすればよいですか?
[DataStudio] ページに移動し、[Scheduled Workflow] ペインの [一括操作] アイコンをクリックします。 [一括操作 - データ開発] タブでは、複数のノード、リソース、または関数に対して一度に必要な操作を実行できます。 その後、操作を実行したオブジェクトを一度にコミットし、[デプロイタスクの作成] ページでオブジェクトをデプロイして、変更を有効にすることができます。

DataStudio ページの操作ログはどのくらいの期間保持されますか?
DataStudio ページで目的のワークフローを見つけ、ワークフロー名にポインターを移動し、ワークフロー名の右側にある [アイコン] をクリックします。表示されるタブで、スケジューリングのリソースグループを変更するノードを選択し、[リソースグループの切り替え] をクリックします。ノードのリソースグループを変更した後、上部のツールバーにある [送信] アイコンをクリックして、ノードを一度にコミットします。次に、[デプロイタスクの作成] ページでノードを一度にデプロイして、変更を本番環境に反映させます。
複数のノード、リソース、または関数に対して一度に操作を実行するにはどうすればよいですか?
Hologres に接続するためのエンドポイントDataWorks では、複数のノード、リソース、または関数に対して一度に操作を実行できます。詳細については、「」をご参照ください。
DataWorks API 操作を呼び出すと、次のエラーメッセージが表示されます。access is forbidden. Please first activate DataWorks Enterprise Edition or Flagship Edition. どうすればよいですか?
概要DataWorks の DataStudio ページで、ワークフロー内の複数のノードのスケジューリング用リソースグループを一度に変更できます。詳細については、「」をご参照ください。
Power BI を MaxCompute に接続するときにエラーが報告された場合はどうすればよいですか?
考えられる原因と解決策については、「Power BI を MaxCompute に接続する」をご参照ください。
DataWorks API 操作を呼び出すと、「アクセスが禁止されています。最初に DataWorks Enterprise Edition または Flagship Edition をアクティブにしてください。」というエラーメッセージが表示されます。どうすればよいですか?
データレコードのダウンロードに必要なインスタンス ID を取得するには、MCQA 機能を無効にする必要があります。
DataWorks では、最大 10,000 件のデータレコードしかダウンロードできません。 10,000 件を超える ODPS SQL ノードのデータレコードをダウンロードする場合は、Tunnel コマンドを使用する必要があります。
set odps.mcqa.disable=true; を ODPS SQL ノードのコードに追加し、この文を他の SELECT 文と一緒に実行します。
10,000 件を超えるデータレコードをダウンロードするために使用されるインスタンス ID を取得する場合、MaxCompute Query Acceleration (MCQA) 機能を無効にするにはどうすればよいですか?
タスクを実行すると、次のエラーメッセージが表示されます。Job Submit Failed! submit job failed directly! Caused by: execute task failed, exception: [202:ERROR_GROUP_NOT_ENABLE]:group is not available。(日本語訳:ジョブの送信に失敗しました! ジョブの送信が直接失敗しました! 原因:タスクの実行に失敗しました、例外:[202:ERROR_GROUP_NOT_ENABLE]:グループは利用できません)
考えられる原因: ワークスペースに関連付けられていて、タスクの実行に使用されるリソースグループが実行中状態ではありません。
解決策: DataWorks コンソール にログインします。左側のナビゲーションペインで、[リソースグループ] をクリックします。[排他的リソースグループ] タブの [リソースグループ] ページで、使用しているリソースグループを見つけ、リソースグループが [実行中] 状態であるかどうかを確認します。リソースグループが別の状態である場合は、リソースグループを再起動するか、別のリソースグループを使用してタスクを実行できます。