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

:データセットの作成

最終更新日:Dec 27, 2024

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

使用上の注意

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

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

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

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

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

前提条件

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

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

  • IMMがアクティブ化されています。詳細については、IMMのアクティブ化を参照してください。

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

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

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

データセットの作成

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

警告

重要:Official:AllFunctionワークフローテンプレートには、すべてのIMM機能が含まれています。IMMは、機能の可用性に基づいて、ワークフローテンプレートにオペレーターを追加したり、ワークフローテンプレートからオペレーターを削除したりします。オペレーターの追加または削除により、課金に変更が生じる可能性があることに注意してください。特定の機能セットのみが必要な場合は、目的に特化したワークフローテンプレートを選択してください。ワークフローテンプレートの詳細については、ワークフローテンプレートとオペレーターを参照してください。ワークフローテンプレートのオペレーターとオペレーターによって発生する料金の詳細については、課金対象項目を参照してください。予期しない料金が発生しないように、テスト目的では少量のデータを含むバケットを使用することをお勧めします。

  • サンプルリクエスト

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

    {
        "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:AllFunction"
        }
    }
  • 完全なサンプルコード (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
            )
            # エンドポイントを指定します。
            config.endpoint = f'imm.cn-shenzhen.aliyuncs.com'
            return imm20200930Client(config)
    
        @staticmethod
        def main() -> None:
            # Alibaba CloudアカウントのAccessKeyペアは、すべてのAPI操作に対する権限を持っています。セキュリティリスクを防ぐため、RAMユーザーとしてAPI操作を呼び出したり、日常のO&Mを実行することをお勧めします。
            # データセキュリティ上の理由から、プロジェクトコードにAccessKeyペア(AccessKey IDとAccessKeyシークレット)を含めないことをお勧めします。
            # この例では、APIアクセスのためのID検証を実装するために、環境変数からAccessKeyペアを読み取ります。環境変数の設定方法については、https://help.aliyun.com/document_detail/2361894.htmlを参照してください。
            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:AllFunction'
            )
            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:AllFunction"
        }
    }
  • 完全なサンプルコード (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
            )
            # エンドポイントを指定します。
            config.endpoint = f'imm.cn-shenzhen.aliyuncs.com'
            return imm20200930Client(config)
    
        @staticmethod
        def main() -> None:
            # Alibaba CloudアカウントのAccessKeyペアは、すべてのAPI操作に対する権限を持っています。セキュリティリスクを防ぐため、RAMユーザーとしてAPI操作を呼び出したり、日常のO&Mを実行することをお勧めします。
            # データセキュリティ上の理由から、プロジェクトコードにAccessKeyペア(AccessKey IDとAccessKeyシークレット)を含めないことをお勧めします。
            # この例では、APIアクセスのためのID検証を実装するために、環境変数からAccessKeyペアを読み取ります。環境変数の設定方法については、https://help.aliyun.com/document_detail/2361894.htmlを参照してください。
            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()