机器学习始终依赖于输入数据,无论是使用预训练的LLMs生成文本,还是在客户数据上训练保留模型,或者实时预测会话放弃。就像任何PostgreSQL数据库一样,PostgresML可以配置为权威的应用程序数据存储,作为来自其他主数据库的流复制副本,或使用外部数据包装器根据需要查询另一个数据主机。根据数据更改的频率和权威数据的位置,不同的方法意味着不同的权衡。
PostgresML可以轻松地从现有数据存储中摄取数据。
静态数据
很少更改的数据可以使用COPY轻松导入到PostgresML中。您只需将数据导出为CSV文件,在Postgres中创建一个表来存储它,并使用命令行导入它。
COPY your_table FROM '/path/to/your_data.csv' DELIMITER ',' CSV HEADER;
实时数据
从在线数据库导入数据可以使用外部数据包装器完成。托管的PostgresML数据库预先安装了postgres_fdw和dblink扩展,因此您可以使用几行SQL代码从任何现有的Postgres数据库导入数据,并从PostgresML导出机器学习工件。
-- 使用 postgres_fdw 导入数据
CREATE EXTENSION IF NOT EXISTS postgres_fdw;
CREATE SERVER your_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'your_host', dbname 'your_db', port 'your_port');
-- 创建外部表
CREATE FOREIGN TABLE your_external_table (col1 type1, col2 type2, ...) SERVER your_server OPTIONS (table_name 'your_remote_table');
-- 执行查询
SELECT * FROM your_external_table;
-- 导出机器学习工件
COPY (SELECT * FROM your_ml_table) TO '/path/to/exported_ml_artifacts.csv' DELIMITER ',' CSV HEADER;
以上SQL示例演示了使用postgres_fdw和外部表从远程Postgres数据库导入数据,以及从PostgresML导出机器学习工件。