Extrakce

Introduction to Data Engineering

Vincent Vankrunkelsven

Data Engineer @ DataCamp

Extrakce dat: co to znamená?

Diagram znázorňující jednoduchou fázi extrakce

Introduction to Data Engineering

Extrakce z textových souborů

Nestrukturovaná data

  • Prostý text
  • Např. kapitola z knihy

 

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 ....

Ploché soubory

  • Řádek = záznam
  • Sloupec = atribut
  • Např. .tsv nebo .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
Introduction to Data Engineering

JSON

  • JavaScript Object Notation
  • Polostrukturovaná data
  • Atomické typy
    • number
    • string
    • boolean
    • null
  • Složené typy
    • 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
Introduction to Data Engineering

Data na webu

Požadavky

Diagram znázorňující model požadavek–odpověď

Příklad

  1. Otevření Google
  2. Požadavek na server Google
  3. Google vrátí webovou stránku
Introduction to Data Engineering

Data na webu prostřednictvím API

  • Data ve formátu JSON
  • API: rozhraní pro programování aplikací
  • Příklady
    • 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': .... }
Introduction to Data Engineering

Data v databázích

Aplikační databáze

  • Transakce
  • Vkládání nebo změny
  • OLTP
  • Řádkově orientované

Analytické databáze

  • OLAP
  • Sloupcově orientované
Introduction to Data Engineering

Extrakce z databází

Připojovací řetězec/URI

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

Použití v Pythonu

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)
Introduction to Data Engineering

Pojďme procvičovat!

Introduction to Data Engineering

Preparing Video For Download...