Як проста і хутка шукаць дадзеныя з дапамогай 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», калі вы хочаце зрабіць нейкі графік ці глыбейшае даследаванне.

будучыню

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

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

Заключэнне

Whale распрацоўваецца і падтрымліваецца Dataframe, стартапам, які я нядаўна меў задавальненне заснаваць разам з іншымі людзьмі. Тады як whale створаны для адмыслоўцаў па апрацоўцы дадзеных, Dataframe прызначаны для каманд апрацоўкі дадзеных. Для тых з вас, хто хоча супрацоўнічаць больш цесна – не саромейцеся звяртацца, мы дадамо вас у ліст чакання.

Як проста і хутка шукаць дадзеныя з дапамогай Whale
А па промакодзе HABR, можна атрымаць дадатковыя 10% да скідкі названай на банеры.

Яшчэ курсы

Рэкамендуемыя артыкулы

Крыніца: habr.com