/ 오픈소스 / sqlflow

sqlflow

SQL과 AI를 결합한 컴파일러로, SQL 구문을 확장하여 머신러닝 모델 훈련, 예측 및 평가를 지원합니다.

GoApache-2.0Platform
⭐ GitHubhttps://github.com/sql-machine-learning/sqlflow
5,187
스타 수
+4
스타 증가율
Apr 18, 2024
최근 업데이트
840
클릭 수

SQLFlow 프로젝트 상세 소개

프로젝트 개요

SQLFlow는 SQL 프로그램을 Kubernetes에서 실행되는 워크플로우로 컴파일하는 컴파일러입니다. SQL 구문을 확장하여 훈련, 예측, 모델 평가, 모델 설명, 사용자 정의 작업 및 수학적 계획을 포함한 AI 작업을 지원합니다.

프로젝트 주소: https://github.com/sql-machine-learning/sqlflow

핵심 기능

1. SQL과 AI의 완벽한 결합

SQLFlow는 기존 머신러닝 개발의 문제점을 해결합니다.

  • 기존 ML 애플리케이션 개발에는 데이터 엔지니어, 데이터 과학자, 비즈니스 분석가 등 여러 역할이 필요합니다.
  • Python, SQL, SAS, Julia, R 등 다양한 프로그래밍 언어를 숙지해야 합니다.
  • 도구 및 개발 환경의 파편화로 인해 엔지니어링 어려움이 발생합니다.

SQLFlow를 사용하면 SQL 기술을 갖춘 엔지니어가 고급 ML 애플리케이션을 개발할 수 있습니다.

2. 광범위한 호환성

지원하는 데이터베이스 시스템:

  • MySQL
  • MariaDB
  • TiDB
  • Apache Hive
  • Alibaba MaxCompute

지원하는 머신러닝 프레임워크:

  • TensorFlow
  • Keras
  • XGBoost

3. 확장된 SQL 구문

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의 전체 아키텍처는 다음과 같은 특징을 갖습니다.

1. 확장성

  • 특정 SQL 엔진이 아닌 다양한 SQL 엔진을 지원합니다.
  • 사용자 정의 함수(UDF)를 기반으로 구문 확장을 구축하지 않습니다.
  • 복잡한 머신러닝 모델 및 툴킷을 지원합니다.

2. 유연성 및 사용 편의성

  • 최첨단 알고리즘을 구성하고 실행할 수 있을 만큼 유연합니다.
  • 특징 교차(feature crosses)와 같은 고급 기능을 지원합니다.
  • 배우기 쉽고 사용 장벽을 낮춥니다.

3. 분산 실행

출력은 Kubernetes 클러스터에서 분산 실행되는 Argo 워크플로우로, 다음을 보장합니다.

  • 고가용성
  • 수평 확장 능력
  • 엔터프라이즈급 배포 지원

기술적 장점

1. 기존 솔루션과의 차이점

Microsoft SQL Server: 머신러닝 서비스를 제공하지만 R 또는 Python을 외부 스크립트로 사용해야 합니다.

Teradata SQL for DL: 확장된 SQL SELECT 구문에서 호출할 수 있는 RESTful 서비스를 제공합니다.

Google BigQuery: CREATE MODEL 구문을 통해 SQL에서 머신러닝을 활성화합니다.

SQLFlow의 장점은 다음과 같습니다.

  • 완전한 확장 가능한 솔루션
  • 다양한 SQL 엔진과 호환
  • 복잡한 머신러닝 모델 지원
  • SQL 문에 Python 또는 R 코드를 임베딩할 필요가 없습니다.

2. 워크플로우 통합

  • SQL 프로그램을 Kubernetes 워크플로우로 컴파일
  • Argo 워크플로우 오케스트레이션 지원
  • 클라우드 네이티브 아키텍처 설계

커뮤니티 및 생태계

학술 지원

오픈 소스 생태계

SQLFlow는 완전한 오픈 소스 생태계를 갖추고 있습니다.

  • 메인 프로젝트: sql-machine-learning/sqlflow
  • Python 클라이언트: sql-machine-learning/pysqlflow
  • Zeppelin 통합: sql-machine-learning/zeppelin-sqlflow
  • 공식 웹사이트: sql-machine-learning.github.io

적용 시나리오

SQLFlow는 특히 다음과 같은 시나리오에 적합합니다.

  • 엔터프라이즈급 데이터 분석 팀이 ML 개발 장벽을 낮추고자 하는 경우
  • SQL 쿼리에서 직접 머신러닝을 수행해야 하는 비즈니스 시나리오
  • 데이터 처리 및 머신러닝 워크플로우를 통합하려는 조직
  • 확장 가능하고 클라우드 네이티브 ML 솔루션이 필요한 기업

요약

SQLFlow는 SQL과 AI를 완벽하게 결합하여 데이터 전문가에게 강력하고 사용하기 쉬운 머신러닝 플랫폼을 제공합니다. 머신러닝 사용 장벽을 낮출 뿐만 아니라 클라우드 네이티브 아키텍처를 통해 엔터프라이즈급 확장성과 안정성을 보장합니다. 데이터 워크플로우에 머신러닝 기능을 원활하게 통합하려는 조직에게 SQLFlow는 이상적인 선택입니다.