数据集是由元数据所组成的集合,是元数据管理存放元数据的容器。本文介绍如何创建数据集。

注意事项

  • 由于各个数据集间无法联合搜索,因此推荐将互不干涉的文件独立存放到不同数据集中,将有关联的文件存放到相同的数据集中。
  • 项目中创建的数据集个数不能超过项目中设置的数据集最大个数。
  • 数据集中元文件个数不能超过数据集中文件的最大个数,项目所有数据集文件个数总和不能超过项目中设置的文件最大个数。
  • 数据集绑定OSS bucket个数不能超过数据集绑定的最大个数,项目所有数据集绑定数量总和不能超过项目中设置的最大绑定数量。
  • 数据集在建立元数据索引时,数据集的工作流模板优先级高于项目设置的工作流模板,当数据集工作流模板为空时,则使用项目设置的工作流模板。关于工作流模板的详细说明,请参见工作流模板与算子

前提条件

操作步骤

步骤一:创建数据集

如下以调用CreateDataset - 创建数据集接口在test-project项目下创建名称为test-dataset,描述为数据集1,模板为Official:AllFunction的数据集为例,介绍如何创建数据集。
  • 请求示例
    {
     "ProjectName": "test-project",
     "DatasetName": "test-dataset",
     "Description": "数据集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"
        }
    }
  • 完整示例代码(以1.27.3版本Python SDK为例)
    # -*- coding: utf-8 -*-
    
    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 Secret初始化账号Client。
            @param access_key_id:
            @param access_key_secret:
            @return: Client
            @throws Exception
            """
            config = open_api_models.Config(
                # 填写您的AccessKey ID。
                access_key_id=access_key_id,
                # 填写您的AccessKey Secret。
                access_key_secret=access_key_secret
            )
            # 填写访问的域名。
            config.endpoint = f'imm.cn-shenzhen.aliyuncs.com'
            return imm20200930Client(config)
    
        @staticmethod
        def main() -> None:
            # 填写IMM AccessKey ID、AccessKey Secret,建议从配置中读取。
            imm_access_key_id = "AccessKeyId"
            imm_access_key_secret = "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='数据集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"
        }
    }
  • 完整示例代码(以1.27.3版本Python SDK为例)
    # -*- coding: utf-8 -*-
    
    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 Secret初始化账号Client。
            @param access_key_id:
            @param access_key_secret:
            @return: Client
            @throws Exception
            """
            config = open_api_models.Config(
                # 填写您的AccessKey ID。
                access_key_id=access_key_id,
                # 填写您的AccessKey Secret。
                access_key_secret=access_key_secret
            )
            # 填写访问的域名。
            config.endpoint = f'imm.cn-shenzhen.aliyuncs.com'
            return imm20200930Client(config)
    
        @staticmethod
        def main() -> None:
            # 填写IMM的AccessKey ID、AccessKey Secret,建议从配置中读取。
            imm_access_key_id = "AccessKeyId"
            imm_access_key_secret = "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()