すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:インデータベース AI/ML の概要

最終更新日:Nov 09, 2025

AnalyticDB PostgreSQL 7.0 は、インデータベース AI/ML 機能をサポートしており、データベース内で直接データ処理とモデル計算を行うことができるため、データ転送コストを大幅に削減できます。この機能は pgml 拡張機能を通じて実装されており、PostgresML オープンソースコミュニティのインターフェイスと互換性があり、パフォーマンス、機能、使いやすさの点で深く最適化されています。GPU/CPU アクセラレーションによるモデルのトレーニング、ファインチューニング、デプロイメント、推論をサポートしています。この拡張機能は、XGBoost、LightGBM、SciKit-Learn などの主流の機械学習アルゴリズムを統合し、企業がインテリジェントな分析アプリケーションを効率的に構築するのに役立ちます。

前提条件

  • カーネルバージョンが V7.1.1.0 以降の AnalyticDB PostgreSQL 7.0 インスタンス。

    説明

    AnalyticDB for PostgreSQL コンソールのインスタンスの[基本情報] ページでマイナーバージョンを確認できます。 インスタンスが必要なバージョンを満たしていない場合は、インスタンスのマイナーバージョンを更新してください

  • エラスティックストレージモードのインスタンスが作成されていること。

  • インスタンスに pgml 拡張機能がインストールされていること。

    説明
    • pgml 拡張機能はコンソールからのインストールをサポートしていません。インストールする必要がある場合は、チケットを送信してテクニカルサポートに連絡し、支援を依頼してください。pgml 拡張機能をアンインストールするには、チケットを送信してください。

    • pgml 拡張機能は AnalyticDB for PostgreSQL 7.0 Basic Edition ではサポートされていません。

メタデータの概要

AnalyticDB PostgreSQL 7.0 のインデータベース AI/ML フレームワークは、pgml 拡張機能に基づいて実装されています。AnalyticDB for PostgreSQL インスタンスに pgml 拡張機能をインストールすると、システムは自動的に pgml という名前のスキーマを作成します。次の表に、pgml スキーマに含まれるメタデータテーブルを示します。

メタデータテーブル名

説明

projects

トレーニングタスクのプロジェクトに関する情報を記録します。

models

モデルトレーニングに関する情報を記録します。

files

保存されたモデルファイルに関する情報を記録します。

snapshots

トレーニングデータセットのスナップショットに関する情報を記録します。

logs

トレーニングログに関する情報を記録します。

deployments

モデルのデプロイメントに関する情報を記録します。

モデルトレーニングタスクが開始されると、トレーニング情報がこれらのメタデータテーブルに自動的に書き込まれます。

説明

pgml メタデータテーブルのカスタムタイプ (task、runtime、sampling など) の詳細については、「機械学習」をご参照ください。

projects

projects テーブルには、トレーニングタスクのプロジェクト ID、プロジェクト名、タスクタイプ、作成時間、更新時間が記録されます。テーブルスキーマとインデックス:

                                         Table "pgml.projects"
   Column   |            Type             | Collation | Nullable |               Default                
------------+-----------------------------+-----------+----------+--------------------------------------
 id         | bigint                      |           | not null | nextval('projects_id_seq'::regclass)
 name       | text                        |           | not null | 
 task       | task                        |           | not null | 
 created_at | timestamp without time zone |           | not null | clock_timestamp()
 updated_at | timestamp without time zone |           | not null | clock_timestamp()
Indexes:
    "projects_pkey" PRIMARY KEY, btree (id)
    "projects_name_idx" btree (name)
Triggers:
    projects_auto_updated_at BEFORE UPDATE ON projects FOR EACH ROW EXECUTE FUNCTION set_updated_at()
    trigger_before_insert_pgml_projects BEFORE INSERT ON projects FOR EACH ROW EXECUTE FUNCTION trigger_check_pgml_projects()
Distributed Replicated

models

models テーブルには、モデルトレーニングに指定されたパラメーターや、プロジェクト ID やスナップショット ID などのその他の関連情報が記録されます。テーブルスキーマとインデックス:

                                           Table "pgml.models"
    Column     |            Type             | Collation | Nullable |              Default               
---------------+-----------------------------+-----------+----------+------------------------------------
 id            | bigint                      |           | not null | nextval('models_id_seq'::regclass)
 project_id    | bigint                      |           | not null | 
 snapshot_id   | bigint                      |           |          | 
 num_features  | integer                     |           | not null | 
 algorithm     | text                        |           | not null | 
 runtime       | runtime                     |           |          | 'python'::runtime
 hyperparams   | jsonb                       |           | not null | 
 status        | text                        |           | not null | 
 metrics       | jsonb                       |           |          | 
 search        | text                        |           |          | 
 search_params | jsonb                       |           | not null | 
 search_args   | jsonb                       |           | not null | 
 created_at    | timestamp without time zone |           | not null | clock_timestamp()
 updated_at    | timestamp without time zone |           | not null | clock_timestamp()
Indexes:
    "models_pkey" PRIMARY KEY, btree (id)
    "models_project_id_idx" btree (project_id)
    "models_snapshot_id_idx" btree (snapshot_id)
Triggers:
    models_auto_updated_at BEFORE UPDATE ON models FOR EACH ROW EXECUTE FUNCTION set_updated_at()
    trigger_before_insert_pgml_models BEFORE INSERT ON models FOR EACH ROW EXECUTE FUNCTION trigger_check_pgml_models_fk()
Distributed Replicated

files

files テーブルには、トレーニング後のモデルファイルが data 列にバイナリ形式で記録されます。各ファイルは、それぞれ 100 MB の複数のスプリットに分割されます。テーブルスキーマとインデックス:

                                         Table "pgml.files"
   Column   |            Type             | Collation | Nullable |              Default              
------------+-----------------------------+-----------+----------+-----------------------------------
 id         | bigint                      |           | not null | nextval('files_id_seq'::regclass)
 model_id   | bigint                      |           | not null | 
 path       | text                        |           | not null | 
 part       | integer                     |           | not null | 
 created_at | timestamp without time zone |           | not null | clock_timestamp()
 updated_at | timestamp without time zone |           | not null | clock_timestamp()
 data       | bytea                       |           | not null | 
Indexes:
    "files_pkey" PRIMARY KEY, btree (id)
    "files_model_id_path_part_idx" btree (model_id, path, part)
Triggers:
    files_auto_updated_at BEFORE UPDATE ON files FOR EACH ROW EXECUTE FUNCTION set_updated_at()
    trigger_before_insert_pgml_files BEFORE INSERT ON files FOR EACH ROW EXECUTE FUNCTION trigger_check_pgml_files()
Distributed Replicated

snapshots

snapshots テーブルには、テーブル名やテストセットの分割情報など、トレーニングデータセットのスナップショットに関する情報が記録されます。テーブルスキーマとインデックス:

                                           Table "pgml.snapshots"
    Column     |            Type             | Collation | Nullable |                Default                
---------------+-----------------------------+-----------+----------+---------------------------------------
 id            | bigint                      |           | not null | nextval('snapshots_id_seq'::regclass)
 relation_name | text                        |           | not null | 
 y_column_name | text[]                      |           |          | 
 test_size     | real                        |           | not null | 
 test_sampling | sampling                    |           | not null | 
 status        | text                        |           | not null | 
 columns       | jsonb                       |           |          | 
 analysis      | jsonb                       |           |          | 
 created_at    | timestamp without time zone |           | not null | clock_timestamp()
 updated_at    | timestamp without time zone |           | not null | clock_timestamp()
 materialized  | boolean                     |           |          | false
Indexes:
    "snapshots_pkey" PRIMARY KEY, btree (id)
Triggers:
    snapshots_auto_updated_at BEFORE UPDATE ON snapshots FOR EACH ROW EXECUTE FUNCTION set_updated_at()
Distributed Replicated

logs

logs テーブルには、トレーニングログに関する情報が記録されます。1 つのトレーニングタスクに複数のトレーニングログが含まれる場合があります。created_at 列の値を昇順で並べ替えることで、ログを表示できます。テーブルスキーマとインデックス:

                                         Table "pgml.logs"
   Column   |            Type             | Collation | Nullable |             Default              
------------+-----------------------------+-----------+----------+----------------------------------
 id         | integer                     |           | not null | nextval('logs_id_seq'::regclass)
 model_id   | bigint                      |           |          | 
 project_id | bigint                      |           |          | 
 created_at | timestamp without time zone |           |          | CURRENT_TIMESTAMP
 logs       | jsonb                       |           |          | 
Indexes:
    "logs_pkey" PRIMARY KEY, btree (id)
Distributed Replicated

deployments

deployments テーブルには、プロジェクト ID、デプロイメント ID、モデル ID など、モデルのデプロイメントに関する情報が記録されます。テーブルスキーマとインデックス:

                                         Table "pgml.deployments"
   Column   |            Type             | Collation | Nullable |                 Default                 
------------+-----------------------------+-----------+----------+-----------------------------------------
 id         | bigint                      |           | not null | nextval('deployments_id_seq'::regclass)
 project_id | bigint                      |           | not null | 
 model_id   | bigint                      |           | not null | 
 strategy   | strategy                    |           | not null | 
 created_at | timestamp without time zone |           | not null | clock_timestamp()
Indexes:
    "deployments_pkey" PRIMARY KEY, btree (id)
    "deployments_model_id_created_at_idx" btree (model_id)
    "deployments_project_id_created_at_idx" btree (project_id)
Triggers:
    deployments_auto_updated_at BEFORE UPDATE ON deployments FOR EACH ROW EXECUTE FUNCTION set_updated_at()
    trigger_before_insert_pgml_deployments BEFORE INSERT ON deployments FOR EACH ROW EXECUTE FUNCTION trigger_check_pgml_deployments_fk()
Distributed Replicated