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

Intelligent Media Management:データセットの作成

最終更新日:Apr 23, 2025

データセットは、Intelligent Media Management(IMM)のメタデータのコンテナーです。このトピックでは、データセットを作成する方法について説明します。

使用上の注意

  • データセットを跨いでの検索はサポートされていません。そのため、関連するファイルは同じデータセットに、関連のないファイルは異なるデータセットに保存することをお勧めします。

  • 1 つのプロジェクト内のデータセットの数は、指定された上限を超えることはできません。

  • 1 つのデータセット内のファイルの数は、データセットが保持できるファイルの指定された最大数を超えることはできません。1 つのプロジェクトのすべてのデータセット内のファイルの総数は、プロジェクトが保持できるファイルの指定された最大数を超えることはできません。

  • 1 つのデータセットにマッピングできる Object Storage Service(OSS)バケットの数は、データセットにマッピングできる OSS バケットの指定された最大数を超えることはできません。1 つのプロジェクトのすべてのデータセットにマッピングされた OSS バケットの総数は、プロジェクト内のマッピングされた OSS バケットの指定された最大数を超えることはできません。

  • プロジェクト内のデータセットのメタデータインデックスを作成すると、データセットのワークフローテンプレートがプロジェクトのワークフローテンプレートよりも優先されます。データセットのワークフローテンプレートが空の場合、プロジェクトのワークフローテンプレートが使用されます。ワークフローテンプレートの詳細については、「ワークフローテンプレートとオペレーター」をご参照ください。

前提条件

  • AccessKey ペアが作成され、取得されています。詳細については、「AccessKey ペアの作成」をご参照ください。

  • OSS が有効化され、バケットが作成され、オブジェクトがバケットにアップロードされています。詳細については、「オブジェクトのアップロード」をご参照ください。

  • IMM が有効化されています。詳細については、「IMM の有効化」をご参照ください。

  • IMM コンソールでプロジェクトが作成されています。IMM コンソールを使用してプロジェクトを作成する方法の詳細については、「プロジェクトの作成」をご参照ください。

    説明
    • CreateProject オペレーションを呼び出してプロジェクトを作成することもできます。詳細については、「CreateProject」をご参照ください。

    • ListProjects オペレーションを呼び出して、特定のリージョンにある既存のプロジェクトをクエリできます。詳細については、「ListProjects」をご参照ください。

データセットの作成

次のサンプルコードでは、 CreateDataset オペレーションを使用して、test-project という名前のプロジェクトに、test-dataset という名前で、「データセット 1」という説明を持ち、Official:ImageManagement ワークフローテンプレートを使用するデータセットを作成します。

  • サンプルリクエスト

    {
     "ProjectName": "test-project",
     "DatasetName": "test-dataset",
     "Description": "Dataset 1",
     "TemplateId": "Official:ImageManagement"
    }
  • サンプルレスポンス

    {
        "RequestId": "9AB4BD43-C4E5-06AA-A7AB-****",
        "Dataset": {
            "FileCount": 0,
            "BindCount": 0,
            "ProjectName": "test-project",
            "CreateTime": "2022-07-05T10:43:32.429344821+08:00",
            "DatasetMaxTotalFileSize": 90000000000000000,
            "DatasetMaxRelationCount": 100000000000,
            "DatasetMaxFileCount": 100000000,
            "DatasetName": "test-dataset",
            "DatasetMaxBindCount": 10,
            "UpdateTime": "2022-07-05T10:43:32.429344821+08:00",
            "DatasetMaxEntityCount": 10000000000,
            "TotalFileSize": 0,
            "TemplateId": "Official:ImageManagement"
        }
    }
  • 完全なサンプルコード(IMM SDK for Python V1.27.3 用)

    # -*- coding: utf-8 -*-
    
    import os
    from alibabacloud_imm20200930.client import Client as imm20200930Client
    from alibabacloud_tea_openapi import models as open_api_models
    from alibabacloud_imm20200930 import models as imm_20200930_models
    from alibabacloud_tea_util import models as util_models
    from alibabacloud_tea_util.client import Client as UtilClient
    
    
    class Sample:
        def __init__(self):
            pass
    
        @staticmethod
        def create_client(
            access_key_id: str,
            access_key_secret: str,
        ) -> imm20200930Client:
            """
            AccessKey ID と AccessKey シークレットを使用してクライアントを初期化します。
            @param access_key_id:
            @param access_key_secret:
            @return: Client
            @throws Exception
            """
            config = open_api_models.Config(
                access_key_id=access_key_id,
                access_key_secret=access_key_secret
            )
            # IMM エンドポイントを指定します。
            config.endpoint = f'imm.cn-shenzhen.aliyuncs.com'
            return imm20200930Client(config)
    
        @staticmethod
        def main() -> None:
            # Alibaba Cloud アカウントの AccessKey ペアは、すべての API オペレーションに対する権限を持っています。API オペレーションの呼び出しや日常的な O&M の実行には、RAM ユーザーを使用することをお勧めします。
            # セキュリティ上の理由から、AccessKey ペアをプロジェクトコードに埋め込まないことをお勧めします。
            # この例では、API アクセスのための ID 検証を実装するために、環境変数から AccessKey ペアを取得しています。環境変数の設定方法については、https://www.alibabacloud.com/help/ja/imm/developer-reference/configure-environment-variables を参照してください。
            imm_access_key_id = os.getenv("AccessKeyId")
            imm_access_key_secret = os.getenv("AccessKeySecret")
            client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
            create_dataset_request = imm_20200930_models.CreateDatasetRequest(
                project_name='test-project',
                dataset_name='test-dataset',
                description='Dataset 1',
                template_id='Official:ImageManagement'
            )
            runtime = util_models.RuntimeOptions()
            try:
                # API オペレーションのレスポンスを出力します。
                response = client.create_dataset_with_options(create_dataset_request, runtime)
                print(response.body.to_map())
            except Exception as error:
                # 必要に応じてエラーメッセージを出力します。
                UtilClient.assert_as_string(error.message)
                print(error)
    
    
    if __name__ == '__main__':
        Sample.main()

データセット情報のクエリ

次のサンプルコードは、GetDataset オペレーションを呼び出して、test-project プロジェクト内の test-dataset データセットに関する情報をクエリします。

  • サンプルリクエスト

    {
     "ProjectName": "test-project",
     "DatasetName": "test-dataset"
    }
  • サンプルレスポンス

    {
        "RequestId": "9AB4BD43-C4E5-06AA-E4B2-****",
        "Dataset": {
            "FileCount": 0,
            "BindCount": 0,
            "ProjectName": "test-project",
            "CreateTime": "2022-07-05T10:43:32.429344821+08:00",
            "DatasetMaxTotalFileSize": 90000000000000000,
            "DatasetMaxRelationCount": 100000000000,
            "DatasetMaxFileCount": 100000000,
            "DatasetName": "test-dataset",
            "DatasetMaxBindCount": 10,
            "UpdateTime": "2022-07-05T10:43:32.429344821+08:00",
            "DatasetMaxEntityCount": 10000000000,
            "TotalFileSize": 0,
            "TemplateId": "Official:ImageManagement"
        }
    }
  • 完全なサンプルコード(IMM SDK for Python V1.27.3 用)

    # -*- coding: utf-8 -*-
    
    import os
    from alibabacloud_imm20200930.client import Client as imm20200930Client
    from alibabacloud_tea_openapi import models as open_api_models
    from alibabacloud_imm20200930 import models as imm_20200930_models
    from alibabacloud_tea_util import models as util_models
    from alibabacloud_tea_util.client import Client as UtilClient
    
    
    class Sample:
        def __init__(self):
            pass
    
        @staticmethod
        def create_client(
            access_key_id: str,
            access_key_secret: str,
        ) -> imm20200930Client:
            """
            AccessKey ID と AccessKey シークレットを使用してクライアントを初期化します。
            @param access_key_id:
            @param access_key_secret:
            @return: Client
            @throws Exception
            """
            config = open_api_models.Config(
                access_key_id=access_key_id,
                access_key_secret=access_key_secret
            )
            # IMM エンドポイントを指定します。
            config.endpoint = f'imm.cn-shenzhen.aliyuncs.com'
            return imm20200930Client(config)
    
        @staticmethod
        def main() -> None:
            # Alibaba Cloud アカウントの AccessKey ペアは、すべての API オペレーションに対する権限を持っています。API オペレーションの呼び出しや日常的な O&M の実行には、RAM ユーザーを使用することをお勧めします。
            # セキュリティ上の理由から、AccessKey ペアをプロジェクトコードに埋め込まないことをお勧めします。
            # この例では、API アクセスのための ID 検証を実装するために、環境変数から AccessKey ペアを取得しています。環境変数の設定方法については、https://www.alibabacloud.com/help/ja/imm/developer-reference/configure-environment-variables を参照してください。
            imm_access_key_id = os.getenv("AccessKeyId")
            imm_access_key_secret = os.getenv("AccessKeySecret")
            client = Sample.create_client(imm_access_key_id, imm_access_key_secret)
            get_dataset_request = imm_20200930_models.GetDatasetRequest(
                # IMM プロジェクトの名前を指定します。
                project_name='test-project',
                # データセットの名前を指定します。
                dataset_name='test-dataset',
                # ファイル数やファイルサイズなどの統計情報を返さないように指定します。
                with_statistics=False
            )
            runtime = util_models.RuntimeOptions()
            try:
                # API オペレーションのレスポンスを出力します。
                response = client.get_dataset_with_options(get_dataset_request, runtime)
                print(response.body.to_map())
            except Exception as error:
                # 必要に応じてエラーメッセージを出力します。
                UtilClient.assert_as_string(error.message)
                print(error)
    
    
    if __name__ == '__main__':
        Sample.main()