Extraer

Introducción a la ingeniería de datos

Vincent Vankrunkelsven

Data Engineer, DataCamp

Extraer datos: ¿qué significa?

Diagrama que representa una fase de extracción simple

Introducción a la ingeniería de datos

Extraer de archivos de texto

No estructurado

  • Texto plano
  • P. ej., un capítulo de un libro

 

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

Ficheros planos

  • Fila = registro
  • Columna = atributo
  • P. ej., .tsv o .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
Introducción a la ingeniería de datos

JSON

  • JavaScript Object Notation
  • Semiestructurado
  • Atómico
    • number
    • string
    • boolean
    • null
  • Compuesto
    • 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
Introducción a la ingeniería de datos

Datos en la Web

Peticiones

Diagrama que representa el modelo de petición-respuesta

Ejemplo

  1. Navegar a Google
  2. Petición al servidor de Google
  3. Google responde con la página web
Introducción a la ingeniería de datos

Datos en la Web mediante APIs

  • Enviar datos en formato JSON
  • API: application programming interface
  • Ejemplos
    • GitHub API
{ "login": "datacamp", "type": "Organization", "created_at": "2013-05-14T13:01:20Z" }
  • 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': .... }
Introducción a la ingeniería de datos

Datos en bases de datos

Bases de datos de aplicaciones

  • Transacciones
  • Inserciones o cambios
  • OLTP
  • Orientadas a filas

Bases de datos analíticas

  • OLAP
  • Orientadas a columnas
Introducción a la ingeniería de datos

Extracción desde bases de datos

Cadena de conexión/URI

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

Uso en 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)
Introducción a la ingeniería de datos

¡Vamos a practicar!

Introducción a la ingeniería de datos

Preparing Video For Download...