Azure Databricks는 어디에서 데이터를 작성하나요?

이 문서에서는 Azure Databricks가 일반적인 작업 및 구성을 사용하여 데이터를 쓰는 위치를 자세히 설명합니다. Azure Databricks는 여러 기술에 걸쳐 있고 공유 책임 모델에서 클라우드 리소스와 상호 작용하는 도구 모음을 제공하기 때문에 데이터를 저장하는 데 사용되는 기본 위치는 실행 환경, 구성 및 라이브러리에 따라 달라집니다.

이 문서의 정보는 다양한 작업의 기본 경로와 구성이 이러한 기본값을 변경하는 방법을 이해하는 데 도움이 됩니다. 데이터에 대한 액세스를 구성하고 제어하는 방법에 대한 지침을 찾는 데이터 관리자 및 관리자는 Unity 카탈로그를 사용하여 데이터 거버넌스를 확인해야 합니다.

개체 스토리지 및 기타 데이터 원본을 구성하는 방법에 대한 자세한 내용은 데이터 원본에 대한 커넥트 참조하세요.

개체 스토리지란?

클라우드 컴퓨팅에서 개체 스토리지 또는 Blob Storage는 데이터, 메타데이터 및 전역적으로 고유한 URI(리소스 식별자)로 구성된 각 개체를 사용하여 데이터를 개체로 기본 스토리지 컨테이너를 참조합니다. 개체 스토리지의 데이터 조작 작업은 종종 REST API 인터페이스를 통해 CRUD(만들기, 읽기, 업데이트 및 삭제)로 제한됩니다. 일부 개체 스토리지 제품에는 버전 관리 및 수명 주기 관리와 같은 기능이 포함됩니다. 개체 스토리지에는 다음과 같은 이점이 있습니다.

  • 고가용성, 내구성 및 안정성.
  • 대부분의 다른 스토리지 옵션에 비해 스토리지 비용이 낮습니다.
  • 무한 확장 가능(클라우드의 지정된 지역에서 사용할 수 있는 총 스토리지 양에 의해 제한됨).

대부분의 클라우드 기반 데이터 레이크는 클라우드 개체 스토리지의 오픈 소스 데이터 형식을 기반으로 빌드됩니다.

Azure Databricks는 개체 스토리지를 어떻게 사용하나요?

개체 스토리지는 대부분의 작업에 Azure Databricks에서 사용하는 기본 형태의 스토리지입니다. DBFS(Databricks Filesystem)를 사용하면 Azure Databricks 사용자가 다른 파일 시스템의 파일과 비슷하게 개체 스토리지의 파일과 상호 작용할 수 있습니다. 외부 데이터 시스템에 대해 테이블을 구체적으로 구성하지 않는 한 Azure Databricks에서 만든 모든 테이블은 클라우드 개체 스토리지에 데이터를 저장합니다.

클라우드 개체 스토리지에 저장된 Delta Lake 파일은 Databricks Lakehouse의 데이터 기반을 제공합니다.

블록 스토리지란?

클라우드 컴퓨팅에서 블록 스토리지 또는 디스크 스토리지는 단순히 "하드 드라이브"라고도 하는 기존 HDD(하드 디스크 드라이브) 또는 SSD(반도체 드라이브)에 해당하는 스토리지 볼륨을 나타냅니다. 클라우드 컴퓨팅 환경에서 블록 스토리지를 배포하는 경우 일반적으로 하나 이상의 물리적 드라이브의 논리 파티션이 배포됩니다. 구현은 제품 제품과 클라우드 공급업체 간에 약간 다르지만 일반적으로 구현 간에 다음과 같은 특징이 있습니다.

  • 모든 VM(가상 머신)에는 연결된 블록 스토리지 볼륨이 필요합니다.
  • 블록 스토리지 볼륨에 설치된 파일 및 프로그램은 블록 스토리지 볼륨이 지속되는 한 유지됩니다.
  • 블록 스토리지 볼륨은 임시 데이터 스토리지에 자주 사용됩니다.
  • VM에 연결된 블록 스토리지 볼륨은 일반적으로 VM과 함께 삭제됩니다.

Azure Databricks는 블록 스토리지를 어떻게 사용하나요?

컴퓨팅 리소스를 켜면 Azure Databricks는 VM을 구성 및 배포하고 블록 스토리지 볼륨을 연결합니다. 이 블록 스토리지는 컴퓨팅 수명 동안 임시 데이터 파일을 저장하는 데 사용됩니다. 이러한 파일에는 디스크 캐시에서 사용하는 데이터 외에도 운영 체제 및 설치된 라이브러리가 포함됩니다. Apache Spark는 효율적인 병렬화 및 데이터 로드를 위해 백그라운드에서 블록 스토리지를 사용하지만, Azure Databricks에서 실행되는 대부분의 코드는 스토리지를 차단하기 위해 데이터를 직접 저장하거나 로드하지 않습니다.

드라이버 노드에 연결된 블록 스토리지를 사용하는 Python 또는 Bash 명령과 같은 임의의 코드를 실행할 수 있습니다. 드라이버 노드에 연결된 임시 스토리지의 파일 작업을 참조하세요.

Unity 카탈로그는 데이터 파일을 어디에 저장하나요?

Unity 카탈로그는 관리자를 사용하여 클라우드 스토리지와 관계형 개체 간의 관계를 구성합니다. 데이터가 있는 정확한 위치는 관리자가 관계를 구성하는 방법에 따라 달라집니다.

Unity 카탈로그가 관리하는 개체에 기록되거나 업로드된 데이터는 다음 위치 중 하나에 저장됩니다.

  • 메타스토어, 카탈로그 또는 스키마와 연결된 관리되는 스토리지 위치입니다. 관리되는 테이블 및 관리되는 볼륨에 기록되거나 업로드된 데이터는 관리되는 스토리지를 사용합니다. 관리되는 스토리지를 참조하세요.
  • 스토리지 자격 증명으로 구성된 외부 위치입니다. 외부 테이블 및 외부 볼륨에 기록되거나 업로드된 데이터는 외부 스토리지를 사용합니다. Unity 카탈로그를 사용하여 클라우드 개체 스토리지에 대한 커넥트 참조하세요.

Databricks SQL은 데이터 백업 테이블을 어디에 저장하나요?

Unity 카탈로그로 CREATE TABLE 구성된 Databricks SQL을 사용하여 문을 실행하는 경우 기본 동작은 Unity 카탈로그로 구성된 관리되는 스토리지 위치에 데이터 파일을 저장하는 것입니다. Unity 카탈로그는 데이터 파일을 어디에 저장하나요?를 참조하세요.

레거시 hive_metastore 카탈로그는 다른 규칙을 따릅니다. Unity 카탈로그 및 레거시 Hive 메타스토어 작업을 참조하세요.

Delta Live Tables는 데이터 파일을 어디에 저장하나요?

Databricks는 DLT 파이프라인을 만들 때 Unity 카탈로그를 사용하는 것이 좋습니다. 데이터는 대상 스키마와 연결된 관리되는 스토리지 위치 내의 디렉터리에 저장됩니다.

필요에 따라 Hive 메타스토어를 사용하여 DLT 파이프라인을 구성할 수 있습니다. Hive 메타스토어로 구성된 경우 DBFS 또는 클라우드 개체 스토리지에 스토리지 위치를 지정할 수 있습니다. 위치를 지정하지 않으면 DBFS 루트의 위치가 파이프라인에 할당됩니다.

Apache Spark는 데이터 파일을 어디에 쓰나요?

Databricks는 데이터를 읽고 쓰기 위해 Unity 카탈로그와 함께 개체 이름을 사용하는 것이 좋습니다. 다음 패턴을 /Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>사용하여 Unity 카탈로그 볼륨에 파일을 쓸 수도 있습니다. Unity 카탈로그 관리 개체에 데이터를 업로드, 만들기, 업데이트 또는 삽입할 수 있는 충분한 권한이 있어야 합니다.

필요에 따라 URI(유니버설 리소스 표시기)를 사용하여 데이터 파일의 경로를 지정할 수 있습니다. URI는 클라우드 공급자에 따라 다릅니다. 또한 클라우드 개체 스토리지에 쓰기 위해 현재 컴퓨팅에 대해 구성된 쓰기 권한이 있어야 합니다.

Azure Databricks는 Databricks Filesystem을 사용하여 Apache Spark 읽기 및 쓰기 명령을 클라우드 개체 스토리지에 다시 매핑합니다. 각 Azure Databricks 작업 영역에는 모든 사용자가 데이터를 읽고 쓰기 위해 액세스할 수 있는 작업 영역에 할당된 클라우드 계정에 구성된 DBFS 루트 스토리지 위치가 함께 제공됩니다. Databricks는 프로덕션 데이터를 저장하기 위해 DBFS 루트를 사용하지 않는 것이 좋습니다. DBFS(Databricks 파일 시스템)란?DBFS 루트 작업을 위한 권장 사항 참조하세요.

pandas는 Azure Databricks에서 데이터 파일을 어디에 작성하나요?

Databricks Runtime 14.0 이상에서 모든 로컬 Python 읽기 및 쓰기 작업에 대한 기본 CWD(현재 작업 디렉터리)는 Notebook을 포함하는 디렉터리입니다. 데이터 파일을 저장할 때 파일 이름만 제공하는 경우 pandas는 해당 데이터 파일을 현재 실행 중인 Notebook과 병렬로 작업 영역 파일로 저장합니다.

일부 Databricks 런타임 버전이 작업 영역 파일을 지원하는 것은 아니며 일부 Databricks 런타임 버전은 Notebook 또는 Git 폴더 사용 여부에 따라 다른 동작을 갖습니다. 기본 현재 작업 디렉터리가란?을 참조하세요.

Azure Databricks에서 임시 파일은 어디에 작성해야 하나요?

클러스터가 종료된 후 유지하지 않으려는 임시 파일을 작성해야 하는 경우 CWD가 작업 영역 파일 시스템에 있는 경우 CWD(현재 작업 디렉터리)에 쓰는 것보다 성능이 향상되도록 $TEMPDIR 임시 파일을 작성합니다. 또한 코드가 리포지토리에서 실행되는 경우 분기 크기 제한을 초과하지 않도록 방지할 수 있습니다. 자세한 내용은 파일 및 리포지토리 크기 제한을 참조 하세요.

/local_disk0 쓸 데이터의 양이 매우 크고 스토리지가 자동 크기 조정되도록 하려는 경우에 씁니다.