
대량의 데이터에 대한 빅 데이터 분석 애플리케이션의 성능을 향상시키기 위해 메모리 내 처리를 지원하는 병렬
처리 프레임워크를 제공
(이전의 hadoob은 하드 기반의 방식으로 속도가 느렸음)

구조화된 데이터를 processing하는 분산 SQL query 엔진

장애가 나거나 재시작해도 데이터 손실 없이 복원
중복 없이 딱 한 번 처리되는 것을 보장

graph와 graph-parallel computation에 대한 API들의 Set
MS Azure 클라우드 플랫폼에 최적화된 Apache Spark 기반 분석 플랫폼
ML모델구성, BI Tool 연계, 데이터 추출 및 DW 구성을 수행



Azure Active Directory와 통합되어 AAD의 일반사용자로 간주되어 보안성 확보

Azure Databricks는 여러가지 시각화 방법 제공







실습에서는 컴퓨팅 리소스 최소화를 위해 단일 노드 클러스터를 생성하지만, 프로덕션 환경에서는 보통 여러 워커 노드로 구성된 클러스터를 생성







매직커맨드 %를 사용해서 하나의 노트북에서 다양한 언어를 사용해서 코딩 가능


dbc파일을 공유해서 워크스페이스를 공유할 수 있다.

스키마 만들기 선택



이후 우하단의 만들기 클릭

노트북을 열면 실행 중인 컴퓨팅 클러스터에 연결되어 있는지 확인

노트북 우상단에서 설정 가능
간단하게 테스트를 빠르게 할 때 사용


혹은 각 인라인마다 매직커맨드 사용 %
포커스 모드를 사용하면 결과 패널이 화면의 절반을 차지하는 확장된 셀을 사용


결과 섹션에서 + 버튼을 누르고 시각화 선택











VERSION AS OF 를 사용하여 기록 테이블에서 주어진 버전의 데이터가 어떻게 보였는지 볼 수 있음


테이블을 실수로 삭제했다 가정


이미 대시보드가 있는 경우 대시보드를 가져오는 옵션도 있습니다. 기존 대시보드는 모두 플랫폼의 이 영역에서 찾을 수 있습니다. 플랫폼 전반에 걸쳐 여러 가지 빠른 생성 도구가 있는데, 다른 하위 메뉴에서 대시보드를 만들기 위한 옵션 중 하나로 대시보드를 제공합니다.

새로운 대시보드를 사용하려면 먼저 대시보드를 데이터에 연결해야 함
대시보드 화면 상단에는 캔버스와 데이터라는 두 개의 탭
다음 단계에서는 이 예제 대시보드에 테이블을 추가하는 과정을 안내합니다.
sales를 검색하세요. customers 테이블을 추가하려면 이 단계를 반복하세요. 각 테이블은 쿼리 편집 패널에서 자동으로 채워진 SELECT * 쿼리 문으로 목록에 추가됩니다. SQL 쿼리를 수정하여 데이터 세트를 변경할 수 있습니다.

대시보드에 추가할 첫 번째 비주얼리제이션은 매출 목표인 300만 달러 대비 현재 매출을 표시하는 카운터 비주얼리제이션입니다.
데이터 탭에서 + SQL에서 만들기 옵션을 선택합니다.
다음 쿼리를 쿼리 편집 공간에 입력하세요:
SELECT sum(total_price) AS Total_Sales, 3000000 AS Sales_Goal FROM xxxxx.v01.sales;
실행을 클릭하여 쿼리를 실행합니다.
데이터 세트 목록에서 쿼리를 마우스 오른쪽 버튼으로 클릭하고 이름 바꾸기를 선택하여 쿼리 이름을 총 판매량 계산으로 변경합니다.
캔버스 탭으로 돌아갑니다.
화면 하단에는 객체 이동, 시각화 추가, 텍스트 상자 추가, 필터 추가를 위한 도구 모음이 있습니다. 시각화 추가를 선택합니다.
화면의 어느 곳으로든 커서를 옮기고 클릭하여 시각화를 캔버스에 추가합니다.
오른쪽의 구성 패널에서 설정에 대해 다음 선택을 하세요:
이제 Total_Sales을 클릭하고 드롭다운에서 형식을 선택합니다. 그런 다음 사용자 지정을 클릭합니다. 다음 조정을 하세요:
- 유형: 통화($)
- 약어: 없음

스타일 섹션에서 조건부 스타일 옆에 있는 + 를 클릭합니다. 다음 설정으로 구성하세요.
- Value <= Target인 경우
- 그런 다음 (색상: 빨간색)

정말 간단한 시각화이지만, 대시보드에서 시각화를 사용하는 방법을 체험할 수 있게 해줍니다. 시각화 상자의 가장자리를 드래그하거나, 시각화 상자 위에서 클릭하고 드래그하면 시각화의 위치와 크기를 조정할 수 있습니다.

다음으로, 3개월 동안의 총 판매 가격과 판매 횟수에 대한 정보가 포함된 콤보 차트인 다른 시각화를 추가해 보겠습니다.
SELECT customer_name,
total_price AS Total_Sales,
date_format(order_date, "MM") AS Month,
product_category
FROM xxxxx.v01.sales
WHERE order_date >= to_date('2019-08-01')
AND order_date <= to_date('2019-10-31');
쿼리 이름을 세 달 판매로 변경하세요.
캔버스 탭으로 돌아갑니다.
캔버스 하단의 메뉴에서 시각화 추가를 선택하고 캔버스를 클릭하여 시각화를 추가합니다.
오른쪽의 구성 패널에서 설정에 대해 다음 선택을 하세요.

7. Y축 옆에 있는 케밥 메뉴 아이콘을 선택하고 이중 축 사용을 클릭합니다.

이중 축을 활성화하면 두 가지 다른 척도에서 데이터의 변화를 볼 수 있습니다. 8월과 10월의 매출 건수는 낮았지만 금액은 높은 것을 알 수 있습니다. 9월에는 그 반대의 상황입니다.

축 제목은 차트 시리즈의 표시 이름에 따라 자동으로 조정됩니다. 시리즈 이름 옆에 있는 색상 블록을 선택하여 시리즈의 색상을 조정할 수도 있습니다.
대시보드를 작성할 때 Databricks Assistant에 자연어 프롬프트를 제공하면 요청에 따라 차트가 자동 생성됩니다. Databricks Assistant를 사용하면 대시보드의 데이터 탭에 정의된 모든 데이터 세트를 기반으로 차트를 작성할 수 있습니다. 함께 시도해 봅시다.
다음 단계를 완료하세요.
캔버스 하단의 메뉴에서 시각화 추가를 선택하고 캔버스를 클릭하여 시각화를 추가합니다.
위젯 상단의 텍스트 필드에 다음 프롬프트를 입력하세요:
product_category를 x축에, total_sales 평균을 y축에 나타내는 막대형 차트를 만듭니다.
Enter 키를 누르거나 제출을 클릭하여 응답을 생성하세요. 도우미가 시각화를 제공하는 데 시간이 걸릴 수 있습니다.
제공된 설명과 일치하는 막대형 차트가 표시됩니다. 시각화가 귀하의 요구 사항을 충족하는지 확인하려면 수락하기 를 클릭하세요.
시각화가 설명과 일치하지 않거나 만들고 싶었던 시각화 종류와 일치하지 않는 경우 응답을 거부하거나 다시 생성할 수 있습니다. 수락한 후에 차트 구성을 조정할 수도 있습니다. 시각화의 색상을 변경해보세요.


판매 값이 주문 날짜에 따라 어떻게 달라지는지 이해하기 위해 산점도라는 차트를 하나 더 만들어 보겠습니다. 이 산점도를 만들려면 다음 단계를 완료하세요.
캔버스 하단의 메뉴에서 시각화 추가를 선택하고 캔버스를 클릭하여 시각화를 추가합니다.
오른쪽의 구성 패널에서 설정에 대해 다음 선택을 하세요.

캔버스에 대시보드의 이름과 텍스트 설명을 위한 공간을 추가해 보겠습니다. 캔버스에 새로운 위젯을 추가하면 다른 위젯도 자동으로 해당 위치에 맞춰 이동합니다. 마우스를 사용하여 위젯을 이동하고 크기를 조정할 수 있습니다. 위젯을 삭제하려면 위젯을 선택한 다음 Delete 키보드 키를 누르세요. 각 위젯의 오른쪽 상단에 있는 케밥 메뉴 아이콘을 사용하여 위젯을 조작할 수도 있습니다.
대시보드에 텍스트 상자를 추가하려면 다음 단계를 완료하세요.
텍스트 상자 추가 아이콘을 클릭하십시오. 위젯을 캔버스 맨 위로 드래그합니다.
유형: # Retail organization
참고: 텍스트 상자는 마크다운을 사용합니다. 포함된 텍스트의 # 문자는 소매 조직 이 레벨 1 제목임을 나타냅니다. 기본 마크다운 구문에 대한 자세한 내용은 이 마크다운 가이드 를 참조하세요.
대시보드가 완성되면 다른 사람들과 공유하려면 게시해야 합니다.
게시된 대시보드는 워크스페이스의 다른 사용자와 공유할 수 있으며, 어카운트 수준에서 등록된 사용자와도 공유할 수 있습니다. 즉, 워크스페이스 액세스 또는 컴퓨트 리소스가 할당되지 않았더라도 Databricks 어카운트에 등록된 사용자에게 대시보드 액세스 권한이 부여될 수 있습니다.
대시보드를 게시할 때 기본 설정은 자격 증명 포함입니다. 게시된 대시보드에 자격 증명을 포함하면 대시보드 뷰어가 자격 증명을 사용하여 데이터에 액세스하고 이를 지원하는 쿼리를 실행할 수 있습니다. 자격 증명을 포함하지 않도록 선택하면 대시보드 뷰어는 자체 자격 증명을 사용하여 필요한 데이터와 컴퓨트에 액세스합니다. 시청자가 대시보드를 구동하는 기본 SQL 웨어하우스에 액세스할 수 없거나 기반 데이터에 액세스할 수 없는 경우 시각화는 렌더링되지 않습니다.
대시보드를 게시하려면 다음 단계를 완료하세요.
공유 설정에서 조직의 모든 사람이 볼 수 있음을 드롭다운 메뉴에서 선택합니다. 그런 다음 공유 대화 상자를 닫습니다.
대시보드 상단에 있는 드롭다운을 사용하여 대시보드의 초안 버전과 게시된 버전 간에 전환합니다.
참고: 초안 대시보드를 편집할 경우, 게시된 대시보드를 보는 사람은 다시 게시하기 전까지 변경 사항을 볼 수 없습니다. 게시된 대시보드에는 새로운 데이터가 도착하면 업데이트할 수 있는 쿼리를 기반으로 구축된 시각화가 포함되어 있습니다. 대시보드는 다시 게시하지 않고도 새로운 데이터로 자동으로 업데이트됩니다.
랩에서 만든 대시보드는 보고에 유용하며, 사용자는 이를 사용하여 최신 소매 판매 수치에 대한 최신 정보를 얻을 수 있습니다. 하지만 사용자에게는 데이터를 더 자세히 탐색할 수 있는 제어 기능이 없습니다. 예를 들어, 사용자가 특정 기간의 데이터를 보고 싶다면 대시보드 작성자에게 연락하여 변경 사항을 요청해야 합니다.
뷰어가 필드나 매개변수 값을 기준으로 특정 데이터를 필터링할 수 있도록 하는 사용자 컨트롤을 만들 수 있습니다. 필터는 대시보드 뷰가 특정 필드를 필터링하거나 데이터 세트 매개변수를 설정하여 결과를 좁힐 수 있는 위젯입니다.
필터는 하나 이상의 데이터세트의 필드에 적용될 수 있습니다. 필드에 필터를 사용하면 사용자는 데이터의 특정 값이나 값 범위에 집중할 수 있습니다. 필터는 선택한 데이터세트를 기반으로 작성된 모든 시각화에 적용됩니다.
대시보드에 필터를 추가하려면 다음 단계를 완료하세요.
대시보드에서 벗어난 경우 다시 대시보드로 돌아가세요.
- **대시보드** 메뉴에서 **소유자** 옵션을 선택하고 본인이 만들거나 소유한 대시보드만 보기를 필터링합니다.
게시된 버전을 보고 있는 경우 대시보드의 초안 버전 보기로 전환하세요.
캔버스 하단 근처에 있는 도구 모음에서 필터 아이콘을 클릭합니다.
위젯을 대시보드 상단에 배치하세요. 텍스트 상자 아래에 추가하는 것도 좋습니다. 대시보드의 위젯을 재배치하여 원하는 대로 구성할 수 있습니다.
필터 위젯을 선택하면 화면 오른쪽에 필터 구성 패널이 나타납니다.
다음 설정을 적용합니다:
체크박스를 사용하여 제목을 활성화하세요.
위젯의 제목을 더블클릭하여 제품 카테고리로 변경합니다.
필터 위젯의 드롭다운을 사용하여 필터를 테스트하세요.
참고: 필터는 필터 구성 패널에서 선택한 각 데이터 세트에 적용됩니다. 선택한 모든 데이터 세트는 product_category에 대해 동일한 범위의 값을 공유합니다. 대시보드 뷰어는 대시보드에서 필터링할 데이터를 선택할 때 해당 목록에서 선택할 수 있습니다.
매개변수를 사용하여 대화형 대시보드를 만들 수도 있습니다. 매개변수를 사용하면 사용자는 런타임에 데이터 세트 쿼리에 값을 대체하여 시각화를 사용자 정의할 수 있습니다. 이는 이 과정의 범위를 벗어나는 내용이므로, 자세한 내용은 대시보드 매개변수란 무엇인가요? 를 참조하세요.
게시된 버전에 새 필터가 반영되도록 대시보드를 편집한 후에는 다시 게시해야 합니다.


이제 소매 조직 대시보드에 또 다른 테이블을 데이터셋으로 추가하여 더 많은 데이터를 준비할 시간입니다.
사이드바 메뉴에서 대시보드를 클릭하여 대시보드 목록 페이지로 이동합니다. 기본적으로 이 페이지는 소유한 대시보드 목록을 표시합니다.
04 수업에서 만든 대시보드를 열기 위해 Retail Dashboard를 클릭합니다. 대시보드의 마지막으로 게시된 버전이 열립니다.
페이지 상단 근처의 드롭다운을 사용하여 초안 대시보드에 액세스합니다.
데이터 탭을 클릭합니다.
새 테이블을 추가하려면 테이블 선택을 클릭합니다.
사용자 스키마에서 sales_orders 테이블을 찾고 데이터셋으로 추가합니다.

각 제품 카테고리에서 판매되는 비율을 보여주는 파이 차트를 만들어 보겠습니다.
다음을 완료하십시오:
캔버스 탭을 클릭합니다.
캔버스에 시각화 위젯을 추가합니다.
다음 구성 설정을 적용합니다:
다음 두 차트에는 두 개의 다른 테이블에서 데이터가 필요합니다. 데이터 탭의 query 편집기에서 JOIN을 사용하여 모든 필요한 값을 포함하는 데이터셋을 만들 수 있습니다. 데이터셋은 공통 테이블 표현식과 조인을 사용하여 생성할 수 있습니다.
이 query는 고객 및 판매 테이블의 데이터를 조인하는 데이터셋을 생성합니다. 고객의 지출 금액을 로열티 프로그램 상태와 연결합니다.
다음 단계를 완료하여 이 데이터셋을 생성합니다.
데이터 탭을 query합니다.
SQL에서 생성을 query합니다.
새 데이터셋의 제목을 더블 클릭하고 기본 이름인 제목 없음을 로열티 세그먼트별 판매로 바꿉니다.
다음 query를 편집기에 붙여넣습니다.
SELECT
product_category,
loyalty_segment,
total_price
FROM
<catalog.schema.table>
-- 판매 테이블 사용
JOIN <catalog.schema.table>
-- 고객 테이블 사용
on sales.customer_id = customers.customer_id
query를 실행하기 전에 주석에 표시된 대로 <catalog.schema.table>을 적절한 테이블 이름으로 바꿉니다.
query를 실행합니다.
이 query는 구매가 이루어진 월의 날짜, 해당 날짜의 총 판매액 및 해당 그룹의 주문 수를 보여주는 데이터셋을 생성합니다. 판매 및 판매 주문 테이블에서 데이터를 가져옵니다.
다음 데이터셋을 추가하려면 다음 단계를 완료합니다.
SQL에서 생성을 클릭합니다.
새 데이터셋의 제목을 더블 클릭하고 기본 이름인 제목 없음을 일별 판매 및 주문으로 바꿉니다.
다음 query를 편집기에 붙여넣습니다.
WITH sales_data AS (
SELECT
date_format(order_date, "dd") AS day,
SUM(total_price) AS total_sales
FROM <catalog.schema.table> -- 판매 테이블 사용
GROUP BY day
),
orders_data AS (
SELECT
CASE
WHEN try_cast(sales_orders.order_datetime AS BIGINT) IS NOT NULL
THEN DAY(FROM_UNIXTIME(sales_orders.order_datetime))
ELSE NULL
END as day,
COUNT(order_number) AS total_orders
FROM <catalog.schema.table> -- 판매 주문 테이블 사용
GROUP BY day
)
SELECT
cast(s.day as INT),
s.total_sales,
o.total_orders
FROM sales_data s
JOIN orders_data o ON s.day = o.day
ORDER BY s.day;
query를 실행하기 전에 주석에 표시된 대로 <catalog.schema.table>을 적절한 테이블 이름으로 바꿉니다.
query를 실행합니다.
이제 새로운 데이터 세트를 사용하여 새로운 시각화를 생성해 보겠습니다.
히트맵은 특정 이벤트의 발생 패턴을 이해하는 데 도움이 됩니다. 생성할 히트맵은 고객의 할당된 로열티 세그먼트와 제품 카테고리별로 나뉘어진 데이터를 보여줍니다. 차트의 색상은 각 카테고리에서 지출된 총 금액을 나타냅니다.
히트맵을 생성하려면 다음 단계를 완료하십시오:
Canvas 탭을 클릭합니다.
캔버스에 시각화 위젯을 추가합니다.
다음 구성 설정을 적용합니다:
대시보드에서 위젯의 크기를 조정하고 배치합니다.
이 위젯의 기본 크기는 모든 제품 카테고리를 표시하기에 너무 작습니다. 위젯의 가장자리에 마우스를 올리고 차트의 크기를 조정합니다. 차트의 다른 영역에 마우스를 올려 손 아이콘을 표시한 다음 클릭하여 캔버스에서 차트를 이동합니다.
좋습니다! 이 데이터의 경우 로열티 세그먼트 3의 고객이 가장 많은 금액을 지출하는 것으로 보입니다. 제품 카테고리 Reagate 및 Zamaha의 경우 로열티 세그먼트가 느리게 반응하고 고객 지출과 관련이 없는 것으로 보입니다.
이중 축 선 차트는 이중 축 막대 차트와 마찬가지로 다른 척도에서 관련된 양을 비교하는 데 유용합니다. 생성할 차트는 판매 수익과 주문 수를 추적합니다. 데이터는 판매가 발생한 월의 날짜별로 그룹화됩니다. 이는 월 전체에 걸쳐 고객의 지출 패턴을 추적하는 데 유용할 수 있습니다.
이중 축 선 차트를 생성하려면 다음을 완료하십시오:
캔버스에 시각화 위젯을 추가합니다.
다음 구성 설정을 적용합니다:
Y 축 오른쪽의 케밥을 클릭합니다. 그런 다음 이중 축 사용 확인란을 클릭하여 활성화합니다.
대시보드에서 위젯의 크기를 조정하고 배치합니다.
이제 추가 시각화를 완료했으므로 추가 시간이 있으면 대시보드를 추가 텍스트 설명 및 차트의 대체 색상으로 사용자 지정할 수 있습니다. 완료되면 필터에 다른 선택 필드를 추가하여 사용할 때 추가 차트에 영향을 미치도록 해야 합니다.
필터를 편집하려면 다음 단계를 사용하십시오:
나가기 전에 추가 사용자가 완성된 대시보드를 볼 수 있도록 대시보드를 재게시하는 것을 기억하십시오.
게시를 클릭하여 수정된 대시보드의 공유 가능한 복사본을 만듭니다.
전환기를 사용하여 게시된 대시보드를 봅니다.


Apache Spakr와 여러 다른 구성 요소와 업데이트를 통해 최적화된 빅데이터 분석 환경을 제공
TensorFlow, keras, PyTorch, XGBoost 등 인기 있는 머신 러닝 라이브러리 추가
최고의 가격 대비 성능을 위한 내장 최적화 기능을 통해 SQL BI 워크로드 최적화를 위해 특별히 설계

사용자가 쿼리를 실행하면 즉시 할당되지 않은 풀에서 자원을 가져와서 활용
비용 저렴
단점: 안정적이지 못한 경우도 존재

클라우드에서만 사용 가능하며, 온프레미스로 불가능
생성적인 및 기존 AI 애플리케이션 개발을 위한 지원
제어 흐름 - DLT 파이프라인을 포함하여 플랫폼의 모든 것을 조율
데이터 흐름 - Delta Lake를 위한 자동화된 데이터 파이프라인
Databriks에서 최고 가성비로 데이터 웨어하우징 및 분석을 수행
통합된 시각화 및 프레젠테이션 환경
기업 내 고유한 용어를 사용하여 자연어로 데이터 질의




SQL 혹은 DataFrame(Python)을 사용하여 데이터 읽기


Spark Engine에서의 속도는 둘 다 같다.
클라우드 저장소에 파일을 읽고 쓰기 위한 오픈 소스 프로토콜


메달리온 아키텍처(Multi Hop)
Databricks 노트북에는 환경 구성 및 상호 작용을 위한 다양한 유틸리티 명령을 제공하는 dbutils 객체가 포함되어 있습니다. dbutils docs
이 과정에서는 Python 셀의 파일 디렉터리를 나열하기 위해 dbutils.fs.ls()를 가끔씩 사용합니다.
path = f"{DA.paths.datasets}"
dbutils.fs.ls(path)
셀에서 SQL 쿼리를 실행하면 결과는 항상 렌더링된 표 형식으로 표시됩니다.
Python 셀에서 반환된 표 형식 데이터가 있는 경우, display를 호출하여 동일한 유형의 미리보기를 얻을 수 있습니다.
여기서는 파일 시스템에서 이전 list 명령을 display로 래핑합니다.
display() 명령은 다음과 같은 기능과 제한 사항을 가집니다.
path = f"{DA.paths.datasets}"
files = dbutils.fs.ls(path)
display(files)
Databricks로 생성된 모든 테이블의 기본 형식은 Delta Lake입니다. Databricks에서 SQL 문을 실행해 본 적이 있다면 이미 Delta Lake를 사용하고 있을 가능성이 높습니다.
Delta Lake로 테이블을 생성하는 데 필요한 코드는 많지 않습니다. 이 강좌 전반에 걸쳐 Delta Lake 테이블을 생성하는 여러 가지 방법을 살펴보겠습니다. 가장 쉬운 방법 중 하나인 빈 Delta Lake 테이블을 등록하는 것부터 시작해 보겠습니다.
필요한 항목:
CREATE TABLE 문students를 사용합니다)참고: Databricks Runtime 8.0 이상에서는 Delta Lake가 기본 형식이므로 USING DELTA가 필요하지 않습니다.



각 문은 자체 ACID 보장을 가진 별도의 트랜잭션으로 처리된다.
가장 자주 사용되는 방법은 단일 트랜잭션에 여러 레코드를 삽입하는 것

Databricks에는 COMMIT 키워드가 없다. 트랜잭션은 실행되자마자 실행되고, 성공하면 커밋된다.

레코드 업데이트는 원자성 보장도 제공합니다. 테이블의 현재 버전에 대한 스냅샷 읽기를 수행하고, WHERE 절과 일치하는 모든 필드를 찾은 다음, 설명된 대로 변경 사항을 적용합니다.

삭제는 원자적이므로 데이터 레이크하우스에서 데이터를 제거할 때 부분적으로만 성공할 위험이 없습니다.
DELETE 문은 하나 이상의 레코드를 제거할 수 있지만, 항상 단일 트랜잭션으로 처리됩니다.

일부 SQL 시스템에는 업데이트, 삽입 및 기타 데이터 조작을 단일 명령으로 실행할 수 있는 upsert라는 개념이 있습니다.
Databricks는 MERGE 키워드를 사용하여 이 작업을 수행합니다.
다음과 같은 임시 뷰를 살펴보겠습니다. 이 뷰에는 변경 데이터 캡처(CDC) 피드에서 출력될 수 있는 4개의 레코드가 포함되어 있습니다.


대상 테이블에 대한 적절한 권한이 있다면 DROP TABLE 명령을 사용하여 레이크하우스의 데이터를 영구적으로 삭제할 수 있습니다.(테이블 액세스 제어 목록(ACL)과 기본 권한)








