При изучении любой обширной темы неизбежно возникают конкретные вопросы: почему это работает именно так, чем один подход лучше другого, что стоит за термином, который все используют но никто не объясняет. Разобрать вопрос по-настоящему — значит дойти до определений отдельных понятий и выстроить связи между концепциями.
Этот проект решает такую задачу применительно к Data Engineering: вопросы (в том числе с реальных тех. собеседований) разбираются до уровня атомарных терминов, а между карточками строятся явные связи — чтобы можно было идти от вопроса к концепции и обратно, а не читать изолированные ответы.
Вопросы → структурированные ответы → сеть связанных терминов и концепций.
- Тематические разделы: DWH, Data Lake, Lakehouse, ClickHouse, Spark, Airflow, SQL, Python, NoSQL, MPP, ETL, Other
- Термины и технологии с определениями, механизмом работы и связями
- Готовые тезисы для устного ответа в каждой карточке
Темы: Spark, ClickHouse, Kafka, Airflow, dbt, Iceberg, Trino, Flink, Greenplum, StarRocks, DuckDB, индексы PostgreSQL, паттерны доставки, слои DWH, оптимизация запросов и многое другое.
00_Inbox/ — входящие вопросы для обработки (inbox.txt)
01_Terminology/ — атомарные термины и статьи о технологиях (145+ файлов)
02_Frameworks/ — индекс всех технологий со ссылками
03_Questions/ — ответы на вопросы, сгруппированные по темам
├── Airflow/
├── ClickHouse/
├── DataLake/
├── DataLakehouse/
├── DWH/
├── ETL/
├── MPP/
├── NoSQL/
├── Other/
├── Python/
├── Spark/
├── SQL/
└── _<Тема>.md — индексный файл темы (список вопросов)
04_Processed/ — архив обработанных сессий (YYYY-MM-DD-N.md)
05_Meta/ — инструкции для Claude, промты, служебные файлы
└── instructions/ — модульные инструкции по работе с базой
Точка входа для навигации: 00_Index.md.
- Obsidian — бесплатно, Desktop или Mobile
- Рекомендуемые плагины: Graph View (встроен), Backlinks (встроен)
git clone <repo-url>Или скачайте ZIP и распакуйте в удобное место.
Затем в Obsidian: Open folder as vault → выберите папку репозитория.
- Files & Links → Default location for new notes: указать конкретную папку (например
00_Inbox) - Files & Links → Use [[Wikilinks]]: включить (база использует формат
[[термин]]) - Editor → Strict line breaks: выключить
После открытия vault граф связей (Ctrl+G) покажет сеть из 145+ узлов — это нормально, база изначально строилась как связный граф.
База полностью читаема без AI — это обычные Markdown-файлы.
Навигация:
00_Index.md→ список всех тем и словарь терминов A–Z03_Questions/_<Тема>.md→ индекс вопросов по теме02_Frameworks/index.md→ список технологий- Клик по
[[ссылке]]в тексте → переход к определению термина
Поиск:
- Встроенный поиск Obsidian (
Ctrl+Shift+F) по всему тексту и YAML - Поиск по тегу:
tag:question,tag:clickhouse,tag:sparkи т.д. - Поле
aliasesв каждом файле содержит точную формулировку вопроса — ищите по ней
Структура карточки вопроса:
Вопрос — точная формулировка с собеседования
Суть — 2–4 предложения, достаточных для понимания с нуля
Как работает — механизм, алгоритм, внутреннее устройство
Пример — код или аналогия (где уместно)
Edge cases — подводные камни и типичные заблуждения
Тезисы — готовый устный ответ из 2–4 предложений
Claude Code используется для обработки новых вопросов: он читает инструкции из 05_Meta/instructions/, создаёт карточки, пишет определения терминов и обновляет индексы.
- Claude Code (CLI или desktop-приложение)
- Открыть папку репозитория как рабочую директорию Claude Code
Файл CLAUDE.md в корне репозитория автоматически загружается Claude Code при каждом запуске — дополнительная настройка не нужна.
Способ 1 — через inbox.txt (пакетная обработка):
- Добавьте вопросы в
00_Inbox/inbox.txt— по одному на строку, в любой форме - Напишите в Claude Code:
Обработай вопросы из 00_Inbox/inbox.txt - Claude создаст карточки, термины, обновит индексы и очистит inbox
Способ 2 — напрямую в диалог:
Обработай вопрос: Как работает partition pruning в ClickHouse?
Добавь в базу: чем отличается copy-on-write от merge-on-read в Iceberg?
- Определяет тему и создаёт файл
03_Questions/<Тема>/<slug>.md - Пишет структурированный ответ с тезисами для собеседования
- Проходит по всем терминам в ответе — создаёт отсутствующие файлы в
01_Terminology/ - Обновляет индексный файл темы
03_Questions/_<Тема>.md - Записывает сессию в
04_Processed/YYYY-MM-DD-N.md
Углуби ответ про data skew в Spark — добавь edge cases и сравнение стратегий
Claude найдёт существующую карточку и дополнит её, не создавая дубликат.
Проведи аудит базы: найди битые ссылки и файлы без тезисов
Все файлы — Markdown с YAML-фронтматтером. Поле aliases содержит точную формулировку вопроса — именно по нему Obsidian строит граф и находит дубликаты. Поле status (draft / verified / expanded) отражает степень готовности карточки.
Файлы терминологии используют **Связи:** в теле для навигации. Файлы вопросов используют related в YAML. Правило не смешивать — намеренное: раздельные механизмы для машиночитаемого графа и человекочитаемой навигации.