Die Extraktion

Einführung in das Data Engineering

Vincent Vankrunkelsven

Data Engineer @ DataCamp

Daten extrahieren: Was bedeutet das?

Diagramm, das die einfache Extraktionsphase darstellt

Einführung in das Data Engineering

Auszug aus Textdateien

Unstrukturiert

  • Einfacher Text
  • Zum Beispiel ein Kapitel aus einem Buch

 

Call me Ishmael. Some years ago—never 
mind how long precisely—having little or
no money in my purse, and nothing particular
to interest me on shore, I thought ....

Flat Files

  • Zeile = Datensatz
  • Spalte = Attribut
  • Zum Beispiel .tsv oder .csv

 

Year,Make,Model,Price
1997,Ford,E350,3000.00
1999,Chevy,"Venture Extended Edition",4900.00
1999,Chevy,"Venture Extended Edition",5000.00
1996,Jeep,Grand Cherokee,4799.00
Einführung in das Data Engineering

JSON

  • JavaScript-Objektnotation
  • Halbstrukturiert
  • Atomar
    • number
    • string
    • boolean
    • null
  • Zusammengesetzt
    • array
    • object
{
  "an_object": {
    "nested": [
      "one",
      "two",
      "three",
      {
        "key": "four"
      }
    ]
  }
}
import json

result = json.loads('{"key_1": "value_1", "key_2":"value_2"}') print(result["key_1"])
value_1
Einführung in das Data Engineering

Daten im Internet

Anfragen

Diagramm zum Anfrage-Antwort-Modell

Beispiel

  1. Google aufrufen
  2. Anfrage an den Google-Server
  3. Google antwortet mit einer Webseite
Einführung in das Data Engineering

Daten im Web über APIs

  • Daten im JSON-Format senden
  • API: Schnittstelle zur Anwendungsprogrammierung
  • Beispiele
    • Twitter-API
{ "statuses": [{ "created_at": "Mon May 06 20:01:29 +0000 2019", "text": "this is a tweet"}] }
  • Hackernews-API
import requests

response = requests.get("https://hacker-news.firebaseio.com/v0/item/16222426.json") print(response.json())
{'by': 'neis', 'descendants': 0, 'id': 16222426, 'score': 17, 'time': 1516800333, 'title': .... }
Einführung in das Data Engineering

Daten in Datenbanken

Anwendungsdatenbanken

  • Transaktionen
  • Einfügungen oder Änderungen
  • OLTP
  • Zeilenorientiert

Analytische Datenbanken

  • OLAP
  • Spaltenorientiert
Einführung in das Data Engineering

Extraktion aus Datenbanken

Verbindungszeichenfolge/URI

postgresql://[user[:password]@][host][:port]

Verwendung in Python

import sqlalchemy
connection_uri = "postgresql://repl:password@localhost:5432/pagila" 
db_engine = sqlalchemy.create_engine(connection_uri)

import pandas as pd pd.read_sql("SELECT * FROM customer", db_engine)
Einführung in das Data Engineering

Lass uns üben!

Einführung in das Data Engineering

Preparing Video For Download...