Trích xuất dữ liệu phi bảng

ETL và ELT với Python

Jake Roach

Data Engineer

Trích xuất dữ liệu phi bảng

Pipeline ETL với phần extract được tô sáng.

ETL và ELT với Python

Các loại dữ liệu phi bảng

Phần lớn dữ liệu tạo ra và sử dụng là dữ liệu phi cấu trúc

  • Văn bản
  • Âm thanh
  • Hình ảnh
  • Video
  • Không gian
  • IoT

Nguồn dữ liệu phi cấu trúc đang được chuyển đổi.

1 https://mitsloan.mit.edu/ideas-made-to-matter/tapping-power-unstructured-data
ETL và ELT với Python

Làm việc với API và dữ liệu JSON

API (Application Programming Interface)

  • Phần mềm lớp trên nguồn dữ liệu
  • Ngăn tương tác trực tiếp với cơ sở dữ liệu

$$

Kỹ sư dữ liệu dùng API để tương tác với cơ sở dữ liệu.

JSON (JavaScript Object Notation)

  • Cặp khóa-giá trị
  • Không có schema cố định
  • Trông và hoạt động giống dictionaries
{
    "key": "value",
    ...
    "open": 0.121875
}
ETL và ELT với Python

Đọc tệp JSON với pandas

{
    "timestamps": [863703000, 863789400, ...],
    "open": [0.121875, 0.098438, ...],
    "close": [...],
    "volume": [...]
}

Dùng hàm .read_json()

# Đọc tệp JSON theo định dạng ở trên
raw_stock_data = pd.read_json("raw_stock_data.json", orient="columns")
1 https://pandas.pydata.org/docs/reference/api/pandas.read_json.html
ETL và ELT với Python

Dữ liệu JSON lồng nhau hoặc phi cấu trúc

Dữ liệu không phải lúc nào cũng sẵn sàng thành DataFrame

  • Đối tượng lồng nhau
  • "Schema" thay đổi
{
    "863703000": {
        "volume": 1443120000,
        "price": {
            "close": 0.09791,
            "open": 0.12187
        }
    }, 
    "863789400": {
        ...
    }, ...
}
ETL và ELT với Python

Đọc tệp JSON với json

import json

with open("raw_stock_data.json", "r") as file:
    # Tải tệp vào một dictionary
    raw_stock_data = json.load(file)

# Xác nhận kiểu của biến raw_stock_data
print(type(raw_stock_data))
<class 'dict'>
ETL và ELT với Python

Cùng luyện tập nào!

ETL và ELT với Python

Preparing Video For Download...