Skip to content

ivanshamaev/hh-data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hh-data

Сбор и структурирование данных о вакансиях HH.ru: от сырых ответов API до аналитических таблиц и слоя Raw Data Vault 2.0.

Описание проекта

Проект загружает вакансии через публичное API HH.ru, сохраняет сырые данные в PostgreSQL (схема raw), строит широкую таблицу для аналитики и нормализованный слой Data Vault 2.0 (схема dv) с хабами, линками и спутниками. Оркестрация — Apache Airflow: отдельные DAG'и для инициализации БД, выгрузки из API и трансформации в DV.

Основные возможности:

  • Загрузка справочника профессиональных ролей, вакансий по Москве/СПб и по поисковым запросам, деталей вакансий (GET /vacancies/{id}).
  • Постобработка: разбор JSON деталей в широкую таблицу raw.vacancy_details_wide.
  • Raw Data Vault 2.0: хабы (вакансия, регион, работодатель, навыки, роли и др.), линки (связи вакансии с сущностями), спутники (атрибуты и история по load_dt).

Стек

  • Airflow — DAG'и загрузки и трансформации
  • PostgreSQL — хранилище (схемы raw, dv)
  • API HH.ru — источник данных

Структура репозитория

Каталог / файл Назначение
airflow/dags/init_db/ DAG init_db: DDL схемы raw и таблиц; папка dv_2/ и DAG init_dv2: DDL схемы dv (хабы, линки, спутники)
airflow/dags/ingestion/ DAG'и выгрузки: роли, вакансии (Москва, СПб, поиск), детали вакансий, постобработка wide
airflow/dags/dv_transform/ DAG dv_transform: наполнение DV из raw.vacancy_details
docs/ Документация по слоям и диаграмма потоков данных

Документация и навигация

Подробное описание по слоям (DDL, выгрузка, проектирование DV, трансформация) и диаграмма таблиц — в папке docs:

  • docs/README.md — оглавление документации и быстрый старт по слоям.
Документ Содержание
01 — Обзор и стек Цели, технологии, общий поток данных
02 — Слой Raw: DDL Схема raw, таблицы, DAG init_db
03 — Слой загрузки (Ingestion) DAG'и выгрузки из API
04 — Проектирование Data Vault 2.0 Хабы, линки, спутники, DAG init_dv2
05 — Трансформация в DV Наполнение DV, DAG dv_transform
06 — Диаграмма слоёв данных Схема таблиц и потоков (Mermaid), как посмотреть

Быстрый старт

  1. Развернуть Airflow и PostgreSQL (например, airflow/docker-compose.yaml), настроить подключение pg_conn.
  2. Выполнить DAG'и инициализации: init_dbinit_dv2 (создание схем и таблиц).
  3. Запустить загрузку: роли → вакансии → детали вакансий → постобработка vacancy_details_wide.
  4. Запустить dv_transform для наполнения Data Vault из raw.vacancy_details.

Подробности — в docs/README.md.

About

Выгрузка данных из api.hh.ru. Анализ вакансий hh.ru

Topics

Resources

License

Stars

Watchers

Forks

Contributors