Databricks는 개발 및 데이터 엔지니어링을 위해 다양한 프로그래밍 언어의 사용을 지원합니다. 이 문서에서는 사용 가능한 옵션, 해당 언어를 사용할 수 있는 옵션 및 해당 제한 사항에 대해 간략하게 설명합니다.
권장 사항
Databricks는 새 프로젝트에 Python 및 SQL을 권장합니다.
- Python 매우 인기 있는 범용 프로그래밍 언어입니다. PySpark DataFrames를 사용하면 테스트 가능한 모듈식 변환을 쉽게 만들 수 있습니다. 또한 Python 에코시스템은 광범위한 라이브러리를 지원하여 솔루션을 확장하기 위한 광범위한 라이브러리를 지원합니다.
-
SQL 쿼리, 업데이트, 삽입 및 삭제와 같은 작업을 수행하여 관계형 데이터 세트를 관리하고 조작하는 데 매우 널리 사용되는 언어입니다. 백그라운드가 주로 데이터베이스 또는 데이터 웨어하우징에 있는 경우 SQL은 좋은 선택입니다.
spark.sql사용하여 Python에 SQL을 포함할 수도 있습니다.
다음 언어는 지원이 제한되어 있으므로 Databricks는 새 데이터 엔지니어링 프로젝트에 권장하지 않습니다.
- Scala Apache Spark™ 개발에 사용되는 언어입니다.
- R Databricks Notebook에서만 완전히 지원됩니다.
언어 지원은 데이터 파이프라인 및 기타 솔루션을 빌드하는 데 사용되는 기능 기능에 따라 달라집니다. 예를 들어 Lakeflow Spark 선언적 파이프라인은 Python 및 SQL을 지원하는 반면 워크플로를 사용하면 Python, SQL, Scala 및 Java를 사용하여 데이터 파이프라인을 만들 수 있습니다.
메모
다른 언어를 사용하여 Databricks와 상호 작용하여 데이터를 쿼리하거나 데이터 변환을 수행할 수 있습니다. 그러나 이러한 상호 작용은 주로 외부 시스템과의 통합 컨텍스트에 있습니다. 이러한 경우 개발자는 거의 모든 프로그래밍 언어를 사용하여 Databricks REST API, ODBC/JDBC 드라이버, Databricks SQL 커넥터 지원(Go, Python, Javascript/Node.js)을 사용하는 특정 언어 또는 Go 및 Rust와 같은 Spark Connect 구현이 있는 언어를 통해 Databricks와 상호 작용할 수 있습니다.
작업 영역 개발 및 로컬 개발
로컬 컴퓨터에서 Databricks 작업 영역 또는 IDE(통합 개발 환경)를 사용하여 데이터 프로젝트 및 파이프라인을 개발할 수 있지만 Databricks 작업 영역에서 새 프로젝트를 시작하는 것이 좋습니다. 작업 영역은 웹 브라우저를 사용하여 액세스할 수 있으며 Unity 카탈로그의 데이터에 쉽게 액세스할 수 있으며 Databricks Assistant와 같은 강력한 디버깅 기능 및 기능을 지원합니다.
Databricks Notebook 또는 SQL 편집기를 사용하여 Databricks 작업 영역에서 코드를 개발합니다. Databricks Notebook은 동일한 Notebook 내에서도 여러 프로그래밍 언어를 지원하므로 Python, SQL 및 Scala를 사용하여 개발할 수 있습니다.
Databricks 작업 영역에서 직접 코드를 개발할 때는 다음과 같은 몇 가지 이점이 있습니다.
- 피드백 루프가 더 빠릅니다. 실제 데이터에 대해 작성된 코드를 즉시 테스트할 수 있습니다.
- 기본 제공 컨텍스트 인식 Databricks Assistant는 개발 속도를 높이고 문제를 해결하는 데 도움이 될 수 있습니다.
- Databricks 작업 영역에서 직접 Notebook 및 쿼리를 쉽게 예약할 수 있습니다.
- Python 개발의 경우 작업 영역에서 파일을 Python 패키지로 사용하여 Python 코드를 올바르게 구성할 수 있습니다.
그러나 IDE 내의 로컬 개발은 다음과 같은 이점을 제공합니다.
- IDE에는 탐색, 코드 리팩터링 및 정적 코드 분석과 같은 소프트웨어 프로젝트 작업을 위한 더 나은 도구가 있습니다.
- 원본을 제어하는 방법을 선택할 수 있으며 Git을 사용하는 경우 Git 폴더가 있는 작업 영역보다 더 고급 기능을 로컬로 사용할 수 있습니다.
- 지원되는 언어의 범위가 더 넓습니다. 예를 들어 Java를 사용하여 코드를 개발하고 JAR 작업으로 배포할 수 있습니다.
- 코드 디버깅을 더 잘 지원할 수 있습니다.
- 단위 테스트 작업에 대한 더 나은 지원이 있습니다.
언어 선택 예제
데이터 엔지니어링에 대한 언어 선택은 다음 의사 결정 트리를 사용하여 시각화됩니다.
Python 코드 개발
Python 언어는 Databricks에서 일류 지원을 제공합니다. Databricks Notebook, Lakeflow Spark 선언적 파이프라인 및 워크플로에서 이를 사용하여 UDF를 개발하고 Python 스크립트 및 휠로 배포할 수 있습니다.
파일이든 노트북이든 데이터브릭스 작업 영역에서 Python 프로젝트를 개발할 때 데이터브릭스는 코드 완성, 탐색, 구문 유효성 검사, 데이터브릭스 어시스턴트를 사용한 코드 생성, 대화형 디버깅 및 등 더 많은 도구를 제공합니다. 개발된 코드는 대화형으로 실행하거나, Databricks 워크플로 또는 Lakeflow Spark 선언적 파이프라인으로 배포하거나, Unity 카탈로그의 함수로도 실행할 수 있습니다. 코드를 여러 파이프라인 또는 작업에서 사용할 수 있는 별도의 Python 패키지로 분할하여 구성할 수 있습니다.
Databricks는 Visual Studio Code 대한 확장을 제공하며 JetBrains는 IDE에서 Python 코드를 개발하고, Databricks 작업 영역에 코드를 동기화하고, 작업 영역 내에서 실행하고, Databricks Connect사용하여 단계별 디버깅을 수행할 수 있는 PyCharm 대한 플러그 인을 제공합니다. 그런 다음 Databricks 자산 번들 Databricks 작업 또는 파이프라인으로 사용하여 개발된 코드를 배포할 수 있습니다.
SQL 코드 개발
SQL 언어는 Databricks Notebook 내에서 또는 SQL 편집기를 사용하여 Databricks 쿼리로 사용할 수 있습니다. 두 경우 모두 개발자는 코드 완성을 포함하여 코드 생성 및 문제 해결에 사용할 수 있는 컨텍스트 인식 Databricks Assistant와 같은 도구에 접근할 수 있습니다. 개발된 코드를 작업 또는 파이프라인으로 배포할 수 있습니다.
Databricks 워크플로를 사용하면 파일에 저장된 SQL 코드를 실행할 수도 있습니다. IDE를 사용하여 이러한 파일을 만들고 작업 영역에 업로드할 수 있습니다. SQL의 또 다른 인기 있는 사용은 dbt(데이터 빌드 도구)사용하여 개발된 데이터 엔지니어링 파이프라인에 있습니다. Databricks 워크플로는 dbt 프로젝트 오케스트레이션을 지원합니다.
Scala 코드 개발
Scala는 Apache Spark™의 원래 언어입니다. 강력한 언어이지만 학습 곡선이 가파르습니다. Scala는 Databricks Notebook에서지원되는 언어이지만, Scala 클래스 및 개체를 만들고 유지 관리하는 방법과 관련된 몇 가지 제한 사항이 있어 복잡한 파이프라인 개발을 더 어렵게 만들 수 있습니다. 일반적으로 IDE는 Scala 코드 개발을 더 잘 지원하며, Databricks 워크플로에서 JAR 작업을 사용하여 배포할 수 있습니다.
다음 단계
- Databricks 위에서 개발하기는 Databricks의 다양한 개발 옵션에 관한 문서를 시작하는 출발점입니다.
- 개발자 도구 페이지에서는 Databricks 자산 번들 및 IDE용 플러그 인을 포함하여 Databricks용 로컬로 개발하는 데 사용할 수 있는 다양한 개발 도구에 대해 설명합니다.
- Databricks Notebook에서 코드 개발 Databricks Notebook을 사용하여 Databricks 작업 영역에서 개발하는 방법을 설명합니다.
- SQL 편집기쿼리를 작성하고 데이터를 탐색합니다. 이 문서에서는 Databricks SQL 편집기를 사용하여 SQL 코드를 사용하는 방법을 설명합니다.
- Lakeflow Spark 선언적 파이프라인 개발은 Lakeflow Spark 선언적 파이프라인의 개발 프로세스를 설명합니다.
- Databricks Connect 사용하면 Databricks 클러스터에 연결하고 로컬 환경에서 코드를 실행할 수 있습니다.
- 더 빠른 개발을 위해 Databricks Assistant 사용하고 코드 문제를 해결하는 방법을 알아봅니다.