机器学习始终依赖于输入数据,无论是使用预训练的LLMs生成文本,还是在客户数据上训练保留模型,或者实时预测会话放弃。就像任何PostgreSQL数据库一样,PostgresML可以配置为权威的应用程序数据存储,作为来自其他主数据库的流复制副本,或使用外部数据包装器根据需要查询另一个数据主机。根据数据更改的频率和权威数据的位置,不同的方法意味着不同的权衡。

    PostgresML可以轻松地从现有数据存储中摄取数据。

    静态数据

    很少更改的数据可以使用COPY轻松导入到PostgresML中。您只需将数据导出为CSV文件,在Postgres中创建一个表来存储它,并使用命令行导入它。

    1. COPY your_table FROM '/path/to/your_data.csv' DELIMITER ',' CSV HEADER;

    实时数据

    从在线数据库导入数据可以使用外部数据包装器完成。托管的PostgresML数据库预先安装了postgres_fdw和dblink扩展,因此您可以使用几行SQL代码从任何现有的Postgres数据库导入数据,并从PostgresML导出机器学习工件。

    1. -- 使用 postgres_fdw 导入数据
    2. CREATE EXTENSION IF NOT EXISTS postgres_fdw;
    3. CREATE SERVER your_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'your_host', dbname 'your_db', port 'your_port');
    4. -- 创建外部表
    5. CREATE FOREIGN TABLE your_external_table (col1 type1, col2 type2, ...) SERVER your_server OPTIONS (table_name 'your_remote_table');
    6. -- 执行查询
    7. SELECT * FROM your_external_table;
    8. -- 导出机器学习工件
    9. COPY (SELECT * FROM your_ml_table) TO '/path/to/exported_ml_artifacts.csv' DELIMITER ',' CSV HEADER;

    以上SQL示例演示了使用postgres_fdw和外部表从远程Postgres数据库导入数据,以及从PostgresML导出机器学习工件。