Як просто та швидко шукати дані за допомогою Whale

Як просто та швидко шукати дані за допомогою Whale
У цьому матеріалі розповідається про найпростіший і швидший інструмент виявлення даних, роботу якого ви бачите на КДПВ. Цікаво, що whale створений таким чином, щоб розміщуватися на віддаленому git-сервері. Деталі під катом.

Як інструмент виявлення даних Airbnb змінив моє життя

У моїй кар'єрі мені пощастило працювати над деякими кумедними проблемами: я вивчав математику потоків під час отримання ступеня в MIT, працював над інкрементальними моделями та проектом з відкритим вихідним кодом pylift в Wayfair, а також впроваджував нові моделі націлення на домашню сторінку та покращення CUPED в Airbnb. Але ця робота ніколи не була гламурною — насправді я часто витрачав більшу частину свого часу на пошук, вивчення та перевірку даних. Хоча це було постійним станом на роботі, мені не спадало на думку, що це проблема, поки я не потрапив до Airbnb, де її було вирішено за допомогою інструмента виявлення даних. Dataportal.

Де я можу знайти {{data}}? Dataportal.
Що означає ця колонка? Dataportal.
Як справи у {{metric}} сьогодні? Dataportal.
В чому сенс життя? У Dataportalймовірно.

Гаразд, ви представили картину. Знайти дані та зрозуміти, що вони означають, як вони були створені і як їх використовувати — все це займає лише кілька хвилин, а не годин. Я міг би витрачати свій час на те, щоб робити прості висновки, або на нові алгоритми, (... або відповіді на випадкові питання про дані), а не ритися в нотатках, писати запити SQL, що повторюються, і згадувати колег у Slack, щоб спробувати відтворити контекст , що вже був у когось іншого.

А в чому проблема?

Я зрозумів, що більшість моїх друзів не мали доступу до такого інструменту. Небагато компаній хочуть виділяти величезні ресурси на створення та підтримку такого інструмента-платформи, як Dataportal. І хоча існує кілька рішень з відкритим вихідним кодом, вони, як правило, розроблені для масштабування, що ускладнює налаштування та обслуговування без посвяченого в цю роботу інженера DevOps. Тому я вирішив створити щось нове.

Whale: простий до дурниці інструмент виявлення даних

Як просто та швидко шукати дані за допомогою Whale

І так, під простим до дурості маю на увазі простий до дурості. У whale тільки два компоненти:

  1. Бібліотека Python, що збирає метадані та форматує їх у MarkDown.
  2. Інтерфейс командного рядка на Rust для пошуку за цими даними.

З точки зору внутрішньої інфраструктури для обслуговування є лише безліч текстових файлів і програма, що оновлює текст. Ось і все, тому розміщення на git-сервері, такому як Github, очевидно. Жодної нової мови запитів, яку довелося б вивчати, жодної інфраструктури управління, жодних резервних копій. Git відомий всім, так що синхронізація та спільна робота додаються безкоштовно. Давайте докладніше розглянемо функціональність Whale v1.0.

Повнофункціональний графічний інтерфейс на основі git

Whale створений, щоб плисти в океані віддаленого сервера git. Він дуже легко налаштовується: визначте деякі з'єднання, скопіюйте скрипт Github Actions (або напишіть його для вибраної платформи CI/CD) — і ви одразу отримаєте веб-інструмент виявлення даних. Ви зможете шукати, переглядати, документувати та ділитися своїми таблицями безпосередньо на Github.

Як просто та швидко шукати дані за допомогою Whale
Приклад згенерованої за допомогою Github Actions таблиці-заглушки. Повну працюючу демонстрацію дивіться у цьому розділі.

Швидкий пошук з CLI за вашим сховищем

Whale живе та дихає у командному рядку, надаючи функціональний, мілісекундний пошук за вашими таблицями. Навіть при мільйонах таблиць нам вдалося зробити whale неймовірно продуктивним, використовуючи деякі хитромудрі механізми кешування, а також перебудувавши бекенд на Rust. Ви не помітите жодної затримки пошуку [Привіт, Google DS].

Як просто та швидко шукати дані за допомогою Whale
Демонстрація whale, пошук по мільйону таблиць.

Автоматичне обчислення метрик [у беті]

Одна з моїх найменш улюблених речей як вченого-дослідника даних - запуск тих самих запитів знову і знову просто для перевірки якості даних, що використовуються. Whale підтримує можливість визначення метрик у простому SQL, який будуть виконуватися за розкладом разом із вашими конвеєрами очищення метаданих. Визначте блок metrics у форматі YAML усередині таблиці заглушки, і Whale автоматично виконуватиметься за розкладом та запускатиме вкладені в metrics запити.

```metrics
metric-name:
  sql: |
    select count(*) from table
```

Як просто та швидко шукати дані за допомогою Whale
У поєднанні з Github такий підхід означає, що whale може бути легким центральним джерелом істини для визначень метрик. Whale навіть зберігає значення разом із міткою часу в каталозі»~/. whale/metrics», якщо ви хочете зробити якийсь графік чи глибше дослідження.

майбутнє

Поговоривши з користувачами наших передрелізних версій, ми зрозуміли, що людям потрібна ширша функціональність. Чому саме інструмент табличного пошуку? Чому не інструмент пошуку метриків? Чому не моніторинг? Чому не інструмент виконання запитів SQL? Хоча whale v1 спочатку замислювався як простий інструмент-компаньйон CLI Dataportal/AmundsenВін вже перетворився на повнофункціональну автономну платформу, і ми сподіваємося, що він стане невід'ємною частиною інструментарію дата-саєніста.

Якщо є щось, що ви бажаєте бачити в процесі розробки, приєднуйтесь до нашого спільноти Slackвідкрийте Issues на Github, або навіть звертайтеся безпосередньо в LinkedIn. У нас вже є ціла низка цікавих функцій - шаблони Jinja, закладки, фільтри пошуку, оповіщення Slack, інтеграція з Jupyter, навіть панель CLI для метрик - але ми будемо раді вашому внеску.

Висновок

Whale розробляється та підтримується Dataframe, стартапом, котрий я нещодавно мав задоволення заснувати разом з іншими людьми. Тоді як whale створений для фахівців з обробки даних, Dataframe призначений для команд обробки даних. Для тих з вас, хто хоче співпрацювати вже - не соромтеся звертатися, ми додамо вас до листа очікування.

Як просто та швидко шукати дані за допомогою Whale
А за промокодом HABR, можна отримати додаткові 10% до знижки, зазначеної на банері.

Ще курси

Рекомендовані статті

Джерело: habr.com