Вітаю!
Я бачу що цей стек SF + dbt набирає обертів.
З цього приводу маю декілька питань:
1) SF наче не має жорстких constraints ніж not null, як Ви покриваєте цю прогалину — виключно dbt?
1.1) з цих особливостей СФ випливає наступні два умовні типи тестування БД — «технічне» і «бізнес» тестування. Наприклад еволюція схеми і дублікати — це ближче до технічного тестування, бо мало стосується значень в самих табличках . А перевірка що вік замовника більше 21 року, що
CALL_STARTED_AT
— не може бути більше поточного timestamp тощо — це виключно забаганки бізнесу.
Чи вирізняєте Ви ці 2 види тестів і як їх реалізували з Дбт? Чи використовуєте пакети dbt tests та інші
2) З прикладу в статті СІ впав тільки тому що дублікати були зазначені на рівні ERROR, замість WARN наприклад- чи всі тести на цьому максимальному рівні чи є нижчого і що робити якщо моделька пройшла але купа вранішніх?
3) при інтенсивній розробці кожен білд/ тест відбувається на повному наборі даних — це трошки нагоняє витрати. Який розмір / витрати асоційовані з
CI_WH
, можна у відносних порівняннях з основними WH
4) самі фахівці дбт в своїх блогах радять не сильно нажимати на тести саме в дбт, а виносити окремо в інші інструменти — як Ви ставитеся до цього і як тоді забезпечити достатній рівень QA?
5) Я так розумію дбт Ви самостійно підтримуєте безкоштовний пакет, не розглядали комерційний дбт клауд?
6) Чи розглядали альтернативні інструменти до дбт? Умовно Flyway і stored procedures в SF?
7) Чи є streaming sources у Вашого dwh? Чи використовуєте інструменти СФ як Dynamic tables, materialized views та SnowPipes? Як вони інтегруються з дбт кодом?
Уявімо що навіть всі існуючі дбт тести не спрацювали і в наші таблички попролізало всіляке сміттячко — як Ви це все будете відкочувати назад і чи є відповідні дбт моделі/ механізми?
П С
Чого CI DATABASE просто не створити як Transient і не гратися з ретеншн тайм🤓?
Шахи: вирішую задачки, граю на лічес, вчу дебюти
verb address — think about and begin to deal with (an issue or problem).
Розглянути/ звернути увагу на — чим не краща заміна якомусь штучному «адресуванню» ?
Це взагалі якийсь словотвір, бо листування точно є, адресація також є, а адресування то до чого?
Мітігувати/ релаксити це щось з тієї ж опери. Фу-фу-фу і ка-ка-ка
Quality attribute — це щось маленьке, конкретне, вимірюване;
Ось основні quality attribute requirements:
Performance — наскільки швидко система обробляє запити та з якою затримкою.
.....
Наскільки маленькими і конкретними є перелічені QAR?
І як Ви кожен з них вимірюєте? Ще й так щоб не було на кожен qar 100500 методів оцінки
Це досить об’ємна тема, тож я наведу тут лише один маленький приклад з адресуванням security.
Це ж якийсь англіцизм чи просто буквальний переклад з доки to address an issue.
Агов , тут є редактори? Бажано такі , що вичитують статті перед публікацією.
А в чому перепона для Компанії у оприлюдненні шаблону гіг контракту?
Там якась дуже специфічна інтелектуальна власність, що може вплинути на роботу компанії?
А якщо третя особа отримає такий примірник гіг контракту ( як складову частину оферту) — чи може вона оприлюднити його , наприклад тут на профільному форумі? Чи можуть незалежні юридичні агенції аналізувати/ робити висновки стосовно положень гіг контракту Вашої компанії?
Пробував декілька платних курсів від українських шкіл- незадоволений, десь на троечку все
Самостійне навчання це топ, особливо з гарною книжкою а не з незрозумілим типом з жахливим акцентом/ мікрошрифтом на екрані з ютуба
ПС
Гарні блогери є, але це дуже рідко буває
Якщо хтось має гарні рекомендації по PySpark, Data Modelling і взагалі DE на Azure то буду вдячний
EDA — мабуть основний і найчастіший елемент ДС, ДА і ДЕ
Чому не зробити його гарненьким одразу?
Сьогодні csv на 12 колонок, завтра паркет на 200
Оці зсуви +1 і −1 туди ж
ПС
Взагалі радив би дивитись в сторону від пандас — не думаю що зараз в продакшн проектах даних не забагато для цього фреймворка, а мігрувати потім це все в той самий спарк — теж якісь зусилля додаткові
Риторичне питання, але чому в ДС зазвичай самий трешовий код на пайтоні? 😅
l, model1, модуль os
Від принципала очікуєш прям витвір мистецтва а не оце от все
«Невидима рука ринку» хіба не має все вирівнювати?
Якщо фармацевт Х продає ліки на
Є ж якась мінімальна ціна на ліки/товар/ послугу, менше якої немає сенсу продавати? В чому проблема збирати інформацію про а) найменшу ціну з задекларованих
б) наявність ліків у конкретних аптеках
П.С. Про заангажованість/ неправильність чи несправедливість конкретно цього агрегатора вважаю немає сенсу говорити- якби це реально було так, то сервіс не взлетів і даного топіку і не було би
Тобто
Чи його достатньо саме тому що вважається що людина прослухала відповідний курс в школі, ПТУ, ВНЗ? Нагадую- порушення правил ОП достатня причина для звільнення без будь-яких додаткових умов чи компенсації.
Далі цікавіше — уявімо що Ви нарешті отримали бажане підвищення і Ви тепер проводите інструктаж ( а якщо точніше то і розробляєте ці самі інструкції для своїх підлеглих) і в переважній більшості випадків несете опосередковано відповідальність за їх безпеку — звідки у вас раптово з’являться відповідні знання і розуміння того необхідного мінімуму заходів які тепер Вам треба виконувати?
<прискіпливий читач mode on>
у сценаріях, схожих с нашим.
С чи З нашим ?
По генерації квері запиту
Квері хіба то не є англіцизмом для запиту? Чи малось на увазі квері ДЛЯ запиту?
Взагалі якось забагато англіцизмів як на мене — усі ці квері, сабміти, ресерчі, тулзи та боттленеки мають чудові загальновживані аналоги українською
Спершу запустимо у синхронному формат, і щодо
Мабуть малось на увазі форматІ?
П. С.
Хтось взагалі вичитує матеріали перед публікацією?
По темі статті:
Чим міряли час виконання функцій? Судячи зі статті то timeit, але цікаво , може щось краще вже є... чи робили профайлінг коду?
Якщо використовували timeit — як вимірювали що саме в середині
def prepare_section_N():
займає найбільше часу? Там умовно виклики ще 3 допоміжних функцій, кожну з яких варто було б заміряти окремо
Стандартні трюки типу заміни for-loop на map не розглядали?
Взагалі цікаво трошки більше подробиць стосовно цільового звіту ( звичайно можете приховати конфіденційну інформацію) :
Скільки в середньому секцій в одному звіті/ скільки секцій в найбільшому чи найважчому звіті
Який розмір секції або яка суть секції? Я маю на увазі ще щось типу Select month, avg(sales) .... Group by 1
Тобто максимум 12 рядків даних
Або прям мільйон рядків найменшої гранулярності ?
Наскільки «широкі» ці секції- це 12 колонок або 200?
Чи однакові за змістом різні секції чи це абсолютно різні запити до різних таблиць?
Чи розглядали під час рефакторінгу варіант що одна з секцій буде ну прям гігантська- гігантська і поток впаде з ООМ?
Натяк що умовний Spark/ PySpark ці самі запити міг би так само зробити ще й з масштабуванням і RDD з коробки
Як колишній Інженер з ОП стригернувся:
Як це не має бути БЖД? Держава декларує жити і здоровʼя громадян як найвищу цінність, це перше що має знати працівник будь-якого рівня на будь-якій посаді
Рівень викладання та якість матеріалів — то інше питання
А можете будь ласка розкрити детальніше — які переваги надав GitHub у порівнянні зі GitLab?
Наскільки я розумію шо то, шо то — це VCS. Теоретично MLOps мав би бути незалежним від VCS, а так у нас якийсь «tight coupling » та «vendor lock»
А чому саме список суміжності а не умовно хеш мапа якась? Якщо в мене вершини то є назви або guid, а не індекси?
Гарна ілюстрація ДФС і БФС в Classic Computer Science Problems in Python by David Kopec
Прям наочно показано що алгоритм той самий, але відповідна структура даних ( стек або черга) повністю міняє виконання
От саме до цього імпорту і питання чому ос, а не
from pathlib import Path
Вітаю
Чому саме модуль ОС обрали а не більш узагальнюючий Path? Pep 428 ніби його рекомендує
Kafka connect він же поки що тільки на інпут працює? Якщо щось з дата марту треба output стрімити то інший інструмент треба? Чи у вас немає таких випадків?
Наскільки я знаю в СФ тільки sprocs підтримують tracing, dbt ще не вміє ? Як Ви роздаєте ролі/ привілегії в СФ , через дбт? І стейдж таблички ви їх теж через дбт створюєте?
Ось до цього питання ще хотілось би повернутися:
Чи тюнили Ви якісь СФ обʼєкти ( налаштування патрицій тощо) і чи не перетирає це дбт білд?
Що по referential integrity- теж через дбт перевіряєте? З цікавості — яка приблизна кількість рядків в найбільшій/ найменшій табличці і скіко то часу займає прогнати тести?