创建数据集

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

数据集是由一组元数据构成的容器,用于存储和管理元数据。本文将为您介绍如何创建数据集。

注意事项

  • 由于各个数据集间无法联合搜索,因此推荐将互不干涉的文件独立存放到不同数据集中,将有关联的文件存放到相同的数据集中。

  • 项目中创建的数据集个数不能超过项目中设置的数据集最大个数。

  • 数据集中元文件个数不能超过数据集中文件的最大个数,项目所有数据集文件个数总和不能超过项目中设置的文件最大个数。

  • 数据集绑定OSS bucket个数不能超过数据集绑定的最大个数,项目所有数据集绑定数量总和不能超过项目中设置的最大绑定数量。

  • 数据集在建立元数据索引时,数据集的工作流模板优先级高于项目设置的工作流模板,当数据集工作流模板为空时,则使用项目设置的工作流模板。关于工作流模板的详细说明,请参见工作流模板与算子

前提条件

操作步骤

步骤一:创建数据集

如下以调用CreateDataset - 创建数据集接口在test-project项目下创建名称为test-dataset,描述为数据集1,模板为Official:AllFunction的数据集为例,介绍如何创建数据集。

警告

重要:Official:AllFunction模板包含IMM提供的全部能力。IMM会根据功能上线情况随时增减该模板算子,因此可能引起计费项增减,请在使用时注意。如果您有特定功能需求,如仅需要文档相关模板、或仅需要图片相关模板等,请选择其他细分模板。关于模板中包含的算子和对应计费项之间的关系,请查看计费项说明。在测试阶段,建议用户使用数据量较小的Bucket进行测试,否则可能会导致大量非预期的费用。

  • 请求示例

    {
     "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 -*-
    
    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 Secret初始化账号Client。
            @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:
            # 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
            # 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
            # 本示例通过从环境变量中读取AccessKey,来实现API访问的身份验证。如何配置环境变量,请参见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='数据集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 -*-
    
    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 Secret初始化账号Client。
            @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:
            # 阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。
            # 强烈建议不要把AccessKey ID和AccessKey Secret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。
            # 本示例通过从环境变量中读取AccessKey,来实现API访问的身份验证。如何配置环境变量,请参见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()