아파치치 베를린 비행선을 통해 삼각주 호수로 깊이 들어가다
제베를린 비행선 부두 컨테이너 가동
내부 메커니즘을 보다 직관적으로 보여주기 위해서, 나는 ApacheZeppelin을 사용하여 모든 예시 코드를 실행한다.너는 제베를린 비행선 부두를 통해 내가 한 일을 쉽게 복제할 수 있다.너는 이 글을 보고, 어떻게 제베를린 비행선 부두에서 스파크를 타는지 이해할 수 있다.여기서는 다음 단계로 요약합니다.
${zeppelin_notebook}
는 1단계에서 복제한 수첩 폴더이고, ${spark_location}
는 2단계에서 다운로드한 Spark 폴더입니다.docker run -u $(id -u) -p 8080:8080 -p 4040:4040 --rm \
-v ${spark_location}:/opt/spark \
-v ${zeppelin_notebook}:/opt/notebook \
-e ZEPPELIN_NOTEBOOK_DIR=/opt/notebook \
-e SPARK_HOME=/opt/spark \
-e ZEPPELIN_LOCAL_IP=0.0.0.0 \
--name zeppelin apache/zeppelin:0.10.0
그리고 http://localhost:8080를 열고 노트북 Spark/Deep Dive into Delta Lake를 엽니다. 여기에 본문의 모든 코드가 포함되어 있습니다.Spark 구성
이는 스파크 해석기를 Delta Lake를 사용하도록 구성하는 Delta Lake의 첫 번째 세그먼트입니다.
%spark.conf
는 제베를린 비행선에 스파크 해석기를 배치하는 데 사용되는 특수한 해석기다.여기에서, 나는 이 빠른 입문의 설명에 따라 스파크 해석기를 설정합니다.이외에 나는 또 스파크를 지정했다.sql.창고.이 강좌 뒷부분에서 테이블 폴더를 쉽게 검사할 수 있도록 창고 폴더의 디렉터리를 명확하게 지정합니다.이제 스파크를 이용해 제베를린 요트에서 델타 레이크를 하자.델타 테이블 생성
우선, 두 필드를 포함하는 증량표 이벤트: id와 데이터를 만듭니다.
그렇다면 이 CREATESQL 문장에 대해 델타는 아래에서 무엇을 했을까요?실제로 델타는 두 가지 일을 했다.
데이터 삽입
이제 이 증량표에 데이터를 삽입합시다.여기에 나는 두 개의 기록만 삽입한다. (1, 데이터 1), (2, 데이터 2)
그리고 이 insert 문장의 결과를 검증하기 위해 select sql 문장을 실행합니다.
그럼 이 insert sql 문장에 대해델타는 아래에서 무엇을 했습니까?테이블 폴더/tmp/Warehouse/이벤트를 검사해 봅시다. 두 가지 변화가 있습니다.
우리는 단지 두 개의 기록만 삽입했기 때문에, 모든 꽃무늬 바닥에 한 개의 기록이 포함되어 있을 것이라고 자연스럽게 추측했다.우리는 이 두 개의 플라워 파일을 직접 읽어서 이 점을 검증할 수 있다.아래 코드와 같이 우리의 추측은 정확하다.
데이터 업데이트
Delta의 가장 중요한 기능은 같은 테이블을 동시에 읽거나 쓰는 다른 사용자에게 영향을 주지 않고 언제든지 테이블을 업데이트할 수 있는 ACID 지원입니다.이제 이 사건표를 업데이트합시다.
이 업데이트 문장의 결과를 검증하기 위해 select 문장을 실행합니다.
그럼 이 업데이트 문구는 아래에서 뭘 할까요?이벤트 테이블 폴더를 보고 두 가지 변경 사항을 발견할 수 있습니다.
먼저 새 트랜잭션 로그 파일의 내용을 살펴보겠습니다. 두 가지 작업이 있습니다.
이제 델타의 시간여행 기능을 사용하겠습니다.우리는 이 업데이트 작업 전에 이 테이블의 최신 버전을 사용하기를 희망합니다.
Delta는 데이터 파일을 삭제하지 않고 트랜잭션 로그의 모든 작업만 기록하므로 Time Travel 기능이 유효합니다.Delta Lake는 이 테이블의 첫 번째 버전을 읽을 때 처음 두 개의 트랜잭션 로그인 000000000000000000000만 읽습니다.json&00000000000000000001.json.
데이터 삭제
이 이벤트 테이블에서 삭제 작업을 실행합니다.
이 delete 문장의 결과를 검증하기 위해 select 문장을 실행합니다.
그러면 델타는 다음 삭제 작업에 대해 무엇을 했습니까?이벤트 테이블 폴더를 확인하고 다음 두 가지 변경 사항을 발견할 수 있습니다.
자연스럽게remove작업은 기록(1,data 1)이 포함된 파일만 삭제할 것으로 추측됩니다. 그러면 이 새로운dd작업은 무엇을 할까요?실제로 새로 추가된 플라워 파일은 비어 있으며 어떤 내용도 포함하지 않습니다. 우리는 이 두 플라워 파일을 직접 읽어서 이 점을 검증할 수 있습니다.
요약
이 문서에서는 Delta Lake 게임을 위한 4가지 주요 단계를 수행합니다.
Reference
이 문제에 관하여(아파치치 베를린 비행선을 통해 삼각주 호수로 깊이 들어가다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/zjffdu/deep-dive-into-delta-lake-via-apache-zeppelin-3077텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)