Извлечение

Введение в дата-инжиниринг

Vincent Vankrunkelsven

Data Engineer @ DataCamp

Извлечение данных: что это значит?

Диаграмма простой фазы извлечения

Введение в дата-инжиниринг

Извлечение из текстовых файлов

Неструктурированные

  • Простой текст
  • Например, глава из книги

 

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

Плоские файлы

  • Строка = запись
  • Столбец = атрибут
  • Например, .tsv или .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
Введение в дата-инжиниринг

JSON

  • JavaScript Object Notation
  • Полуструктурированный формат
  • Атомарные типы
    • number
    • string
    • boolean
    • null
  • Составные типы
    • 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
Введение в дата-инжиниринг

Данные в интернете

Запросы

Диаграмма модели запрос-ответ

Пример

  1. Открываем Google
  2. Отправляем запрос на сервер Google
  3. Google возвращает веб-страницу
Введение в дата-инжиниринг

Данные в интернете через API

  • Передача данных в формате JSON
  • API: интерфейс прикладного программирования
  • Примеры
    • 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': .... }
Введение в дата-инжиниринг

Данные в базах данных

Операционные базы данных

  • Транзакции
  • Вставка и изменение данных
  • OLTP
  • Строковая ориентация

Аналитические базы данных

  • OLAP
  • Столбцовая ориентация
Введение в дата-инжиниринг

Извлечение из баз данных

Строка подключения/URI

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

Использование в 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)
Введение в дата-инжиниринг

Давайте потренируемся!

Введение в дата-инжиниринг

Preparing Video For Download...