Delta Lake는 Spark, PrestoDB, Flink, Trino, Hive 등의 컴퓨팅 엔진과 Scala, Java, Rust, Ruby, Python용 API를 사용하여 Lakehouse 아키텍처를 구축할 수 있는 오픈 소스 스토리지 프레임워크입니다.
다음은 가장 널리 사용되는 Delta Lake 통합 중 일부입니다. 전체 목록은 delta.io/integrations를 참조하세요.
최신 릴리스에 대해서는 온라인 설명서를 참조하십시오.
Delta Standalone 라이브러리는 Delta 테이블을 읽고 쓰는 데 사용할 수 있는 단일 노드 Java 라이브러리입니다. 특히 이 라이브러리는 트랜잭션 로그에서 테이블의 메타데이터와 상호 작용하는 API를 제공하여 Delta Lake 형식의 트랜잭션 보장을 달성하기 위해 Delta 트랜잭션 로그 프로토콜을 구현합니다.
Delta Lake 프로젝트에서 제공하는 API에는 두 가지 유형이 있습니다.
DataFrameReader
/ Writer
(예: spark.read
, df.write
, spark.readStream
및 df.writeStream
)를 통해 Delta 테이블을 읽을 수 있습니다. 이러한 API에 대한 옵션은 Delta Lake의 주요 릴리스(예: 1.xx) 내에서 안정적으로 유지됩니다.Delta Lake는 모든 Delta Lake 테이블에 대한 이전 버전과의 호환성을 보장합니다. 즉, 최신 버전의 Delta Lake는 항상 이전 버전의 Delta Lake에서 작성된 테이블을 읽을 수 있습니다. 그러나 우리는 트랜잭션 프로토콜에 새로운 기능이 도입됨에 따라 호환성을 깰 수 있는 권리를 보유합니다(즉, 이전 버전의 Delta Lake는 최신 버전에서 생성된 테이블을 읽지 못할 수 있습니다).
프로토콜의 주요 변경 사항은 Protocol
작업에서 최소 판독기/작성기 버전을 증가시켜 표시됩니다.
Delta Transaction Log Protocol 문서는 트랜잭션 프로토콜의 사양을 제공합니다.
Delta Lake ACID 보장은 스토리지 시스템의 원자성 및 내구성 보장을 전제로 합니다. 특히 스토리지 시스템은 다음을 제공해야 합니다.
자세한 내용은 스토리지 구성에 대한 온라인 설명서를 참조하세요.
Delta Lake는 동시 읽기 및 쓰기에 대한 직렬성을 보장합니다. 자세한 내용은 Delta Lake 동시성 제어를 참조하세요.
우리는 GitHub 문제를 사용하여 커뮤니티에 보고된 문제를 추적합니다. 답변을 얻기 위해 커뮤니티에 문의할 수도 있습니다.
Delta Lake에 대한 기여를 환영합니다. 자세한 내용은 CONTRIBUTING.md를 참조하세요.
우리는 또한 Delta Lake 행동 강령을 준수합니다.
Delta Lake는 SBT를 사용하여 컴파일됩니다.
컴파일하려면 다음을 실행하세요.
build/sbt compile
아티팩트를 생성하려면 다음을 실행하세요.
build/sbt package
테스트를 실행하려면 다음을 실행하세요.
build/sbt test
단일 테스트 스위트를 실행하려면 다음을 실행하십시오.
build/sbt spark/'testOnly org.apache.spark.sql.delta.optimize.OptimizeCompactionSQLSuite'
단일 테스트 스위트 내에서 단일 테스트를 실행하려면 다음을 실행하십시오.
build/sbt spark/'testOnly *.OptimizeCompactionSQLSuite -- -z "optimize command: on partitioned table - all partitions"'
자세한 명령은 SBT 문서를 참조하세요.
IntelliJ는 Delta Lake를 개발할 때 사용하도록 권장되는 IDE입니다. Delta Lake를 새 프로젝트로 가져오려면 다음 안내를 따르세요.
~/delta
에 Delta Lake를 복제합니다.File
> New Project
> Project from Existing Sources...
선택하고 ~/delta
선택합니다.Import project from external model
에서 sbt
선택합니다. Next
클릭합니다.Project JDK
에서 유효한 Java 1.8
JDK를 지정하고 project reload
및 builds
에 SBT 셸을 사용하도록 선택합니다.Finish
클릭합니다.IntelliJ가 색인을 생성할 때까지 기다린 후 IntelliJ에서 테스트 도구 모음을 실행하여 설정을 확인하세요.
DeltaLogSuite
검색 및 열기Run 'DeltaLogSuite'
선택합니다.양식에 오류가 있는 경우
Error:(46, 28) object DeltaSqlBaseParser is not a member of package io.delta.sql.parser
import io.delta.sql.parser.DeltaSqlBaseParser._
...
Error:(91, 22) not found: type DeltaSqlBaseParser
val parser = new DeltaSqlBaseParser(tokenStream)
그런 다음 다음 단계를 따르세요.
build/sbt compile
.File
> Project Structure...
> Modules
> delta-spark
로 이동합니다.Source Folders
아래 오른쪽 패널에서 target
폴더(예: target/scala-2.12/src_managed/main [generated]
를 제거합니다.Apply
클릭한 후 테스트를 다시 실행하세요. Apache 라이센스 2.0, 라이센스를 참조하십시오.
Delta Lake 커뮤니티에는 두 가지 통신 매체가 있습니다.