Fundamenten van data engineering in Databricks

Databricks-concepten

Kevin Barlow

Data Practitioner

Medallion-architectuur

Medallion-architectuurdiagram

Databricks-concepten

Data lezen

Spark is zeer flexibel en kan uit veel databronnen/-typen lezen.

Veelvoorkomende bronnen en typen:

  • Delta-tabellen
  • Bestandsformaten (CSV, JSON, Parquet, XML)
  • Databases (MySQL, Postgres, EDW)
  • Streamingdata
  • Afbeeldingen / video’s

Databronnen - Bestandsformaten

Databronnen - Databases

Databronnen - Nieuwe formaten

Databricks-concepten

Data lezen

Spark is zeer flexibel en kan uit veel databronnen/-typen lezen.

Veelvoorkomende bronnen en typen:

  • Delta-tabellen
  • Bestandsformaten (CSV, JSON, Parquet, XML)
  • Databases (MySQL, Postgres, EDW)
  • Streamingdata
  • Afbeeldingen / video’s
#Delta-tabel
spark.read.table()
#CSV-bestanden
spark.read.format('csv').load('*.csv')
#Postgres-tabel
spark.read.format("jdbc")
  .option("driver", driver)
  .option("url", url)
  .option("dbtable", table)
  .option("user", user)
  .option("password", password)
  .load()
Databricks-concepten

Structuur van een Delta-tabel

Een Delta-tabel geeft een open bestandsformaat tabelachtige eigenschappen.

  • Voelt als een tabel bij lezen
  • Toegang tot onderliggende files (Parquet en JSON)

Delta-structuur

Databricks-concepten

Uitleg van de Delta Lake-structuur

Receptkaart - Foto van gerecht

Receptkaart - Ingrediënten en stappen

Databricks-concepten

DataFrames

DataFrames zijn tweedimensionale weergaven van data.

  • Lijken op tabellen
  • Vergelijkbaar concept in veel tools
    • Spark (standaard), pandas, dplyr, SQL-queries
  • Basis voor de meeste datapijplijnen
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"))
Databricks-concepten

Data schrijven

Soorten tabellen in Databricks

  1. Beheerde tabellen
    • Standaardtype
    • Opgeslagen met Unity Catalog
    • Door Databricks beheerd
  2. Externe tabellen
    • Op andere locatie opgeslagen
    • Stel LOCATION in
    • Door klant beheerd
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 ...
Databricks-concepten

Laten we oefenen!

Databricks-concepten

Preparing Video For Download...