SQLFlow是一个编译器,将SQL程序编译成在Kubernetes上运行的工作流。它通过扩展SQL语法来支持AI任务,包括训练、预测、模型评估、模型解释、自定义作业和数学规划。
项目地址: https://github.com/sql-machine-learning/sqlflow
SQLFlow解决了传统机器学习开发中的痛点:
SQLFlow让具备SQL技能的工程师就能开发高级ML应用。
支持的数据库系统:
支持的机器学习框架:
SQLFlow扩展了标准SQL语法,添加了机器学习相关的关键字和语句,使用户能够直接在SQL中进行:
TO TRAIN
)TO PREDICT
)SELECT *
FROM iris.train
TO TRAIN DNNClassifier
WITH model.n_classes = 3, model.hidden_units = [10, 20]
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
INTO sqlflow_models.my_dnn_model;
SELECT *
FROM iris.test
TO PREDICT iris.predict.class
USING sqlflow_models.my_dnn_model;
SQLFlow的整体架构具有以下特点:
输出是在Kubernetes集群上分布式运行的Argo工作流,确保:
Microsoft SQL Server: 提供机器学习服务,但需要R或Python作为外部脚本
Teradata SQL for DL: 提供RESTful服务,可从扩展的SQL SELECT语法调用
Google BigQuery: 通过CREATE MODEL
语句在SQL中启用机器学习
SQLFlow的优势在于:
SQLFlow拥有完整的开源生态系统:
SQLFlow特别适合以下场景:
SQLFlow通过将SQL与AI完美结合,为数据专业人员提供了一个强大而易用的机器学习平台。它不仅降低了机器学习的使用门槛,还通过云原生架构确保了企业级的可扩展性和可靠性。对于希望在数据工作流中无缝集成机器学习能力的组织来说,SQLFlow是一个理想的选择。