データセットは、メタデータを保存および管理するためのコンテナです。このトピックでは、データセットの作成方法について説明します。
注意事項
-
関連のないファイルは異なるデータセットに、関連のあるファイルは同じデータセットに格納してください。
-
プロジェクト内のデータセット数は、プロジェクトの上限を超えてはなりません。
-
1 つのデータセット内のファイル数は、そのデータセットの上限を超えてはなりません。また、プロジェクト内のすべてのデータセットに含まれるファイルの合計数も、プロジェクトの上限を超えてはなりません。
-
1 つのデータセットにバインドできる OSS バケットの数は、そのデータセットの上限を超えてはなりません。また、プロジェクト内のすべてのデータセットにバインドされたバケットの合計数も、プロジェクトの上限を超えてはなりません。
-
メタデータインデックスを構築する際、データセットのワークフローテンプレートがプロジェクトのワークフローテンプレートより優先されます。データセットにワークフローテンプレートが設定されていない場合、IMM はプロジェクトのテンプレートを使用します。ワークフローテンプレートの詳細については、「ワークフローテンプレートとオペレーター」をご参照ください。
前提条件
-
AccessKey ペアを作成しました。詳細については、「AccessKey ペアを作成する」をご参照ください。
-
OSS を有効化し、バケットを作成して、ファイルをバケットにアップロード済みである必要があります。詳細については、「ファイルのアップロード」をご参照ください。
-
IMM を有効化しました。詳細については、「IMM を有効化する」をご参照ください。
-
IMM コンソールでプロジェクトを作成しました。詳細については、「プロジェクトの作成」をご参照ください。
説明-
CreateProject 操作を呼び出してプロジェクトを作成することもできます。詳細については、「プロジェクトの作成」をご参照ください。
-
ListProjects 操作を呼び出して、指定したリージョン内のすべてのプロジェクトを一覧表示できます。
-
操作手順
ステップ 1:データセットの作成
この例では、CreateDataset 操作を呼び出して、プロジェクト test-project 内に、名前が test-dataset、説明が Dataset 1、テンプレートが Official:ImageManagement のデータセットを作成します。
-
リクエスト例
{ "ProjectName": "test-project", "DatasetName": "test-dataset", "Description": "Dataset 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" } } -
完全なサンプルコード (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: """ AccessKey ID と AccessKey Secret を使用してクライアントを初期化します。 @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 オペレーションを実行できます。セキュリティのため、API アクセスや日常的な運用・保守には RAM ユーザーの使用を推奨します。 # AccessKey ID および AccessKey Secret をコード内にハードコードしないでください。キーが漏洩した場合、セキュリティリスクが発生する可能性があります。 # この例では、認証のために環境変数から AccessKey ペアを取得します。環境変数の設定方法の詳細については、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: # 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()
(オプション)ステップ 2:データセットのクエリ
この例では、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" } } -
完全なサンプルコード (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: """ AccessKey ID と AccessKey Secret を使用してクライアントを初期化します。 @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 オペレーションを実行できます。セキュリティのため、API アクセスや日常的な運用・保守には RAM ユーザーの使用を推奨します。 # AccessKey ID および AccessKey Secret をコード内にハードコードしないでください。キーが漏洩した場合、セキュリティリスクが発生する可能性があります。 # この例では、認証のために環境変数から AccessKey ペアを取得します。環境変数の設定方法の詳細については、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( # 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()