Podstawy Data Engineering w Databricks

Koncepcje Databricks

Kevin Barlow

Data Practitioner

Architektura Medallion

Diagram architektury Medallion

Koncepcje Databricks

Odczytywanie danych

Spark to elastyczny framework obsługujący wiele źródeł i formatów danych.

Typowe źródła i formaty danych:

  • Tabele Delta
  • Formaty plików (CSV, JSON, Parquet, XML)
  • Bazy danych (MySQL, Postgres, EDW)
  • Dane strumieniowe
  • Obrazy / Wideo

Źródła danych – formaty plików

Źródła danych – bazy danych

Źródła danych – nowe formaty

Koncepcje Databricks

Odczytywanie danych

Spark to elastyczny framework obsługujący wiele źródeł i formatów danych.

Typowe źródła i formaty danych:

  • Tabele Delta
  • Formaty plików (CSV, JSON, Parquet, XML)
  • Bazy danych (MySQL, Postgres, EDW)
  • Dane strumieniowe
  • Obrazy / Wideo
#Delta table
spark.read.table()
#CSV files
spark.read.format('csv').load('*.csv')
#Postgres table
spark.read.format("jdbc")
  .option("driver", driver)
  .option("url", url)
  .option("dbtable", table)
  .option("user", user)
  .option("password", password)
  .load()
Koncepcje Databricks

Struktura tabeli Delta

Tabela Delta nadaje cechy tabeli otwartemu formatowi pliku.

  • Zachowuje się jak tabela podczas odczytu
  • Dostęp do plików źródłowych (Parquet i JSON)

Struktura Delta

Koncepcje Databricks

Struktura Delta Lake

Karta przepisu – zdjęcie potrawy

Karta przepisu – składniki i kroki

Koncepcje Databricks

DataFrames

DataFrames to dwuwymiarowe reprezentacje danych.

  • Wyglądem przypominają tabele
  • Stosowane w wielu narzędziach danych
    • Spark (domyślny), pandas, dplyr, zapytania SQL
  • Podstawowa struktura większości procesów danych
id customerName bookTitle
1 John Data Guide to Spark
2 Sally Bricks SQL for Data Engineering
3 Adam Delta Keeping Data Clean
df = (spark.read
  .format("csv")
  .option("header", "true")
  .option("inferSchema", "true")
  .load("/data.csv"))
Koncepcje Databricks

Zapisywanie danych

Rodzaje tabel w Databricks

  1. Tabele zarządzane
    • Typ domyślny
    • Przechowywane w Unity Catalog
    • Zarządzane przez Databricks
  2. Tabele zewnętrzne
    • Przechowywane w innej lokalizacji
    • Wymaga ustawienia LOCATION
    • Zarządzane przez klienta
df.write.saveAsTable(table_name)

CREATE TABLE table_name 
USING delta 
AS ...
df.write
  .location('').saveAsTable(table_name)

CREATE TABLE table_name 
USING delta 
LOCATION "<path>" 
AS ...
Koncepcje Databricks

Czas na ćwiczenia!

Koncepcje Databricks

Preparing Video For Download...