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

MaxCompute:スキーマ

最終更新日:Apr 23, 2025

スキーマは、MaxCompute のプロジェクトをテーブル、リソース、および関数に関連付けるために使用されます。 スキーマを使用すると、テーブル、リソース、および関数をさらに分類できます。 このトピックでは、スキーマの基本操作について説明します。

ランタイム環境を準備する

PyODPS は、DataWorks の PyODPS ノードまたはオンプレミス マシンで実行できます。 PyODPS を実行する前に、ツールを選択し、ランタイム環境を準備する必要があります。

  • DataWorks: DataWorks で PyODPS を実行する場合は、PyODPS 2 ノードまたは PyODPS 3 ノードを作成する必要があります。 詳細については、「DataWorks での PyODPS の使用」をご参照ください。

  • オンプレミス マシン: オンプレミス マシンで PyODPS を実行する場合は、PyODPS をインストールし、MaxCompute エントリオブジェクトを初期化する必要があります。

基本操作を実行する

MaxCompute のスキーマ機能を使用する場合は、スキーマ関連の操作で有効にすることができます。

  • スキーマを作成します。

    schema = o.create_schema("**schema_name**")
    print(schema)
  • スキーマを削除します。

    schema = o.delete_schema("**schema_name**")
  • すべてのスキーマを一覧表示します。

    for schema in o.list_schemas():
        print(schema)
  • スキーマ機能を有効にすると、MaxCompute エントリオブジェクトが操作を実行できるすべての MaxCompute オブジェクトは、DEFAULT という名前のスキーマに配置されます。 他のスキーマ内のオブジェクトに対して操作を実行するには、エントリオブジェクトを作成するときにスキーマを指定する必要があります。 サンプルコード:

    # 環境変数 ALIBABA_CLOUD_ACCESS_KEY_ID を AccessKey ID に設定します。
    # 環境変数 ALIBABA_CLOUD_ACCESS_KEY_SECRET を AccessKey シークレットに設定します。
    # AccessKey ID または AccessKey シークレットを直接使用しないことをお勧めします。
    o = ODPS(
        os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'),
        os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
        project='<your-default-project>',
        endpoint='<your-end-point>',
        schema='<your-schema-name>',
    )

    次の表にパラメーターを示します。

    パラメーター

    説明

    your-default-project

    MaxCompute プロジェクトの名前。

    your-end-point

    MaxCompute プロジェクトのエンドポイント。 MaxCompute プロジェクトの作成時に選択したリージョンとネットワーク接続方法に基づいて、このパラメーターを設定する必要があります。 各リージョンとネットワークに対応するエンドポイントの詳細については、「エンドポイント」をご参照ください。

    重要

    無効なエンドポイントを指定すると、MaxCompute にアクセスしたときにエラーが発生します。

    your-schema-name

    スキーマの名前。

  • さまざまなオブジェクトの操作メソッドに schema パラメーターを指定します。 サンプルコード:

    # test_schema テーブル内のすべてのテーブルを一覧表示します。
    for table in o.list_tables(schema='**schema_name**'):
        print(table)
  • SQL 文を実行するときにデフォルトのスキーマを指定します。 サンプルコード:

    o.execute_sql("SELECT * FROM dual", default_schema="**schema_name**")