[未完待续] 流式机器学习(online machine learning) - pipelineDB with plR and plPython
背景
pipelinedb 是一款基于PostgreSQL的SQL接口的流式数据库,数据处理吞吐量大,同时能使用PostgreSQL的内置强大功能。
对用户来说,可以省掉很多开发成本,使用pipelinedb以及plpython或plr语言,实现流式的机器学习,流式的数据处理。
pipelinedb作为流式数据处理平台,plpython和plr作为处理逻辑代码,写在pipelinedb数据库中。
例子:
1、定义数据流格式
create stream s1 (id int, content jsonb);
2、定义数据处理逻辑代码
create or replace function ml_func1(jsonb) returns text as $$
-- python代码
$$ language plpythonu strict;
或
create or replace function ml_func1(jsonb) returns text as $$
-- R代码
$$ language plr strict;
3、定义流式计算视图
createa continue view cv1 as select id, ml_func1(content) from s1;
4、通过SQL查询cv1得到流式计算的结果
select * from cv1 where ....;
DEMO
小结
参考
https://www.postgresql.org/docs/10/static/plpython.html
https://github.com/postgres-plr/plr
《流计算风云再起 - PostgreSQL携PipelineDB力挺IoT》