資料集是由一組中繼資料構成的容器,用於儲存和管理中繼資料。本文將為您介紹如何建立資料集。
注意事項
由於各個資料集間無法同盟搜尋,因此推薦將互不干涉的檔案獨立存放到不同資料集中,將有關聯的檔案存放到相同的資料集中。
專案中建立的資料集個數不能超過專案中設定的資料集最大個數。
資料集中元檔案個數不能超過資料集中檔案的最大個數,專案所有資料集檔案個數總和不能超過專案中設定的檔案最大個數。
資料集綁定OSS bucket個數不能超過資料集綁定的最大個數,專案所有資料集綁定數量總和不能超過專案中設定的最大綁定數量。
資料集在建立中繼資料索引時,資料集的工作流程範本優先順序高於專案設定的工作流程範本,當資料集工作流程範本為空白時,則使用專案設定的工作流程範本。關於工作流程範本的詳細說明,請參見工作流程範本與運算元。
前提條件
已建立並擷取AccessKey。具體操作,請參見建立AccessKey。
已開通OSS服務、建立儲存空間並上傳檔案到儲存空間。具體操作,請參見控制台上傳檔案。
已開通Intelligent Media Management服務。具體操作,請參見開通產品。
已通過Intelligent Media Management控制台建立專案。具體操作,請參見建立專案。
您也可以調用API介面建立專案。具體操作,請參見CreateProject - 建立專案。
您可以調用ListProjects - 列出所有專案資訊的列表介面列出指定地區下已建立的所有專案資訊。
操作步驟
步驟一:建立資料集
如下以調用CreateDataset - 建立資料集介面在test-project專案下建立名稱為test-dataset,描述為資料集1,模板為Official:ImageManagement的資料集為例,介紹如何建立資料集。
請求樣本
{ "ProjectName": "test-project", "DatasetName": "test-dataset", "Description": "資料集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" } }
完整範例程式碼(以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: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" } }
完整範例程式碼(以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()