Um dataset é um contêiner para armazenar e gerenciar metadados. Este tópico descreve como criar um dataset.
Observações de uso
Armazene arquivos não relacionados em datasets diferentes e arquivos relacionados no mesmo dataset.
A quantidade de datasets em um projeto não pode exceder a cota do projeto.
O número de arquivos em um dataset não pode ultrapassar seu limite específico. O total de arquivos em todos os datasets de um projeto também deve respeitar a cota do projeto.
A quantidade de buckets OSS vinculados a um dataset não pode exceder o limite do dataset. O total de buckets associados a todos os datasets de um projeto não pode ultrapassar a cota do projeto.
Ao criar um índice de metadados, o modelo de workflow do dataset tem prioridade sobre o modelo de workflow do projeto. Se o dataset não possuir um modelo próprio, o IMM utiliza o modelo do projeto. Para mais informações sobre modelos de workflow, consulte Modelos de workflow e operadores.
Pré-requisitos
Crie um par de AccessKey. Para mais informações, consulte Criar um par de AccessKey.
Ative o OSS, crie um bucket e faça upload de arquivos para esse bucket. Para mais detalhes, consulte Fazer upload de arquivos.
Ative o serviço IMM. Para obter instruções, consulte Ativar o IMM.
-
Crie um projeto no console do IMM. Para mais informações, consulte Criar um projeto.
NotaVocê também pode criar um projeto chamando a operação CreateProject. Para mais informações, consulte Criar um projeto.
Chame a operação ListProjects para listar todos os projetos em uma região específica.
Procedimento
Etapa 1: Criar um dataset
Este exemplo chama a operação CreateDataset para criar um dataset chamado test-dataset, com a descrição Dataset 1 e o modelo Official:ImageManagement, no projeto test-project.
-
Exemplo de solicitação
{ "ProjectName": "test-project", "DatasetName": "test-dataset", "Description": "Dataset 1", "TemplateId": "Official:ImageManagement" } -
Exemplo de resposta
{ "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" } } -
Código de exemplo completo (Python SDK 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: """ Use your AccessKey ID and AccessKey secret to initialize the 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 ) # Specify the endpoint. config.endpoint = f'imm.cn-shenzhen.aliyuncs.com' return imm20200930Client(config) @staticmethod def main() -> None: # An Alibaba Cloud account AccessKey pair can perform all API operations. For security, we recommend using a RAM user for API access or routine O&M. # Do not hard-code your AccessKey ID and AccessKey secret in the code. This practice can lead to security risks if the keys are leaked. # This example retrieves an AccessKey pair from environment variables for authentication. For more information about how to configure environment variables, see https://www.alibabacloud.com/help/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:ImageManagement' ) runtime = util_models.RuntimeOptions() try: # Print the response of the API operation. response = client.create_dataset_with_options(create_dataset_request, runtime) print(response.body.to_map()) except Exception as error: # Print the error message if an error occurs. UtilClient.assert_as_string(error.message) print(error) if __name__ == '__main__': Sample.main()
(Opcional) Etapa 2: Consultar um dataset
Este exemplo chama a operação GetDataset para consultar o dataset chamado test-dataset no projeto test-project.
-
Exemplo de solicitação
{ "ProjectName": "test-project", "DatasetName": "test-dataset" } -
Exemplo de resposta
{ "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" } } -
Código de exemplo completo (Python SDK 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: """ Use your AccessKey ID and AccessKey secret to initialize the 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 ) # Specify the endpoint. config.endpoint = f'imm.cn-shenzhen.aliyuncs.com' return imm20200930Client(config) @staticmethod def main() -> None: # An Alibaba Cloud account AccessKey pair can perform all API operations. For security, we recommend using a RAM user for API access or routine O&M. # Do not hard-code your AccessKey ID and AccessKey secret in the code. This practice can lead to security risks if the keys are leaked. # This example retrieves an AccessKey pair from environment variables for authentication. For more information about how to configure environment variables, see https://www.alibabacloud.com/help/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( # Specify the name of the IMM project. project_name='test-project', # Specify the name of the dataset. dataset_name='test-dataset', # Do not return statistics, such as the number of files and total file size. with_statistics=False ) runtime = util_models.RuntimeOptions() try: # Print the response of the API operation. response = client.get_dataset_with_options(get_dataset_request, runtime) print(response.body.to_map()) except Exception as error: # Print the error message if an error occurs. UtilClient.assert_as_string(error.message) print(error) if __name__ == '__main__': Sample.main()