Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 1 Monat, 1 Woche her
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 Monat, 4 Wochen her
За 200$ в месяц ChatGPT никто не пробовал в работе?
Snowflake знают все, даже если вы его никогда не использовали, но если вы работаете в области аналитики данных или инжиниринга данных, вы точно о нём слышали.
Главная его особенность заключается в том, что Snowflake фактически создал концепцию Lake House до того, как она стала популярной в 2020-2021 годах. Идея заключалась в разделении Compute (вычисления на виртуальных машинах) и Storage (хранение данных на S3, Azure Storage, GCP Storage).
То есть все данные хранятся в одном большом хранилище (storage), а вычисления могут выполняться на любом подходящем ресурсе.
Речь, в данном случае, о кластерах Snowflake (Compute Warehouse). Единственный недостаток этой технологии — данные хранятся в закрытом формате, представляющем собой black box для конечного пользователя, что также приводит к эффекту vendor lock.
Чтобы упростить продажу продукта, Snowflake позиционируется как хранилище данных. Если бы в 2016-2017 годах компания пыталась объяснять клиентам, что это нечто большее, чем классическое хранилище, и не совсем хранилище, это значительно усложнило бы продажи.
С 2020 года стали активно развиваться открытые форматы таблиц, которые заменили классический каталог Apache Hive: Delta, Iceberg и Hudi.
Hudi стух. Delta стал стандартом для Databricks. Iceberg занял лидерство в индустрии.
Snowflake также добавил поддержку каталога Iceberg. В свою очередь, Databricks приобрел компанию Tabular (создателей Iceberg), чтобы унифицировать формат внутри своего lake house — Delta Lake Universal Format (UniForm).
И теперь снова о Snowflake, который считается дорогим, но при этом удобным и простым в использовании. В сети полно информации о том, как можно оптимизировать затраты, самый популярный метод — включить AUTO Suspend.
Однако мы наблюдаем сдвиг в сторону унификации аналитических решений. По умолчанию Snowflake скрывает свои данные и хранит их в собственном формате, как любая база данных. Но с развитием интеграции Iceberg появилась возможность переносить часть данных из Snowflake во внешнее хранилище и создавать Snowflake-Iceberg Managed Catalog.
Это открывает множество возможностей использовать каталог Snowflake, задействуя внешние вычислительные движки, такие как DuckDB, Trino, Spark, Polars и PyArrow.
Несколько ссылок по теме:
- Quack, Quack, Ka-Ching: Cut Costs by Querying Snowflake from DuckDB
- Execute Snowflake queries locally on DuckDB
- Processing Trillions of Records at Okta with Mini Serverless Databases
Пока это не полноценная замена Snowflake или унификация методов хранения и доступа к данным, но видно как это направление набирает обороты и позволяет уже сейчас сократить расходы Snowflake.
Недавно я писал про приятный инсайт и русский линкедин. Но теперь мне хотелось бы поделиться инсайтом, какие посты я вижу. Там почти не пишут про инструменты или архитектуру, или про какие-то вещи с индустрией. Если полистать и присмотреться, что пишут, то оказывается что каждый второй, если не каждый первый пост будет попадать в следующую категорию:
- HR (бывшие) теперь консультанты и коучи, могут быстро прокачать вас до нужного уровня, составить резюме и помочь найти работу.
- Специалисты (особенно в области product), могут вас поменторить и прокачать, составить резюме и помочь найти работу.
- Success stories как кто-то нашел работу благодаря консультации тех самых специалистов
- Скриншоты переписки при поиске работы. Тут возможно 2 вариант: Кандидат отжигает или HR отжигает.
Тем неменее, все равно прикольно читать, разбавляет индуских data influencers!
А что вам попадется в Linkedin на русском? 😝
Что ещё почитать?
Удивительно, что до сих пор не постил в канал свой список любимых книг. Они действительно хорошие.
Лейл Лаундес "Как говорить с кем угодно и о чем угодно"
Джим Кэмп “Сначала скажите нет”
Брайан Трейси "Переговоры"
Stephanie Palmer “Good in a Room”
Карен Прайор «Не рычите на собаку! Книга о дрессировке людей, животных и самого себя»
Пять учебников по переговорам и общению с другими людьми. Они очень разные между собой и по формату, и по целевой аудитории, и по рекомендациям, но каждый из пяти этих взглядов на коммуникацию был мне очень полезен и каждым я активно пользуюсь.
"Думай медленно... Решай быстро", Дэниел Канеман
“The Willpower Instinct: How Self-Control Works, Why It Matters, and What You Can Do to Get More of It”, Kelly McGonigal
"The Shallows", Николас Карр
Три отличные книги о том, как люди думают и как на это можно влиять. В первую очередь интересно понимать и влиять на самого себя, конечно. И выключите, наконец, уведомления на телефоне!
“Remote. Office not required”, David Heinemeier Hansson, Jason Fried
Книга об удаленке, написанная задолго до COVID. Очень много конкретных мыслей и предложений о том, как организовать её эффективнее.
Аллен Карр "Легкий способ сбросить вес"
Алексей Филатов "Теория и практика жиросжигания"
Две лучшие книги по борьбе с лишним весом из тех, что я читал, а читал я много. По их рецептам я реально худел с минимальными усилиями. Та самая “волшебная таблетка”.
"Ценностное управление для бизнеса", Константин Харский
Культура ест стратегию на завтрак, как известно. А чтобы ценности вашей компании использовались как-то иначе, чем просто висеть на холодильнике – прочтите книгу Харского.
"Школа продаж. Что делать, если клиент не хочет покупать?" Александр Деревицкий
«Метод тыквы. Как стать лидером в своей нише без бюджета», Майк Микаловиц
“No B.S. Ruthless Management of People and Profits” Dan S. Kennedy
Учебники бизнеса. Из каждого есть что взять и с чем поспорить, но даже то, “с чем поспорить”, читается с огромным интересом.
"Разумное распределение активов", Уильям Дж. Бернстайн
Лучшая книга об инвестициях. Вы не потеряете много денег, если будете инвестировать, опираясь на её идеи.
“Onward: How Starbucks Fought for Its Life without Losing Its Soul”, Howard Schultz
“Anything You Want: 40 Lessons for a New Kind of Entrepreneur”, Derek Sivers
Две вдохновляющие истории двух совершенно разных бизнесов.
Патрик Ленсиони «Пять пороков команды. Притчи о лидерстве»
“Кто, решите вашу проблему номер один”, Джефф Смарт, Рэнди Стрит
Две лучшие книги о найме и работе с людьми. А люди – это же самое главное в бизнесе?
Мою с соавторами книгу в этот список вставлять нескромно, так что я её просто рядом поставлю. Список закончился выше.
“50 бизнес-моделей новой экономики. Уроки компаний-единорогов”, Алексей Черняк, Михаил Иванов, Александр Горный
P.S.: меньше книг, но с более подробным комментарием о каждой – в весеннем ролике на YouTube.
В итоге за три дня я смог полностью пересобрать модель безопасности для Snowflake, понять, как работает Permifrost, и разблокировать все задачи, связанные с добавлением новых объектов в хранилище данных.
Заодно появился готовый проект для Surfalytics по использованию Permifrost, который мы будем изучать.
—-
PS: В чём ценность Permifrost и такого знания? Как мне видится, это отличная галочка в резюме для Analytics/Data Engineer. Очень полезная вещь для любого проекта в Snowflake и легко описывается в формате STAR (Situation, Task, Action, Result). Этому мы тоже будем учиться в Surfalytics.
А так интересно услышать от экспертов про:
1) Использовании Permiftost или альтернатив, как например Terraform, где можно создавать все объекта и давать права в одном месте
2) В целом про best practices RBAC
3) Как это делается в BigQuery, Databricks, Redshift и тп
Я часто слышал и видел Permifrost — утилиту для настройки прав доступа в Snowflake.
Permifrost — это Python-инструмент для управления правами доступа в Snowflake. Основная документация по его использованию доступна в проекте и на PyPI. Разработан в GitLab.
Одна из ключевых особенностей Snowflake — это удобное управление доступом с помощью Access Control Framework.
Внутри Snowflake у нас есть:
- база данных;
- внутри базы данных есть схемы;
- внутри схемы есть объекты: таблицы, вьюхи, процедуры.
Чтобы написать запрос, пользователь или сервисный пользователь должен иметь привилегии на объекты, например, на SELECT. Привилегий много, но для нас важно разделить их на категории READ, MODIFY и ADMIN — этого будет достаточно.
Все привилегии назначаются не конкретному пользователю, а роли, и уже потом мы назначаем роль пользователю.
Кроме DATABASE, ROLE, и USER есть ещё один важный элемент — это WAREHOUSE (вычислительный кластер). Часто для каждого сервиса можно выбрать свой compute, и таким образом легче отслеживать его стоимость.
Для меня все эти DBA-штучки в Snowflake довольно запутанные, и, если сильно углубляться, можно потратить много времени на планирование модели безопасности.
Безусловно, есть классные вещи, такие как IP Policy для пользователя — мы указываем список IP-адресов для сервисного пользователя, откуда могут приходить запросы. Dynamic Masking позволяет скрывать PII-данные для пользователей, у которых нет прав доступа к "красным" данным.
Обычно всё это настраивается с помощью команд GRANT, но легко потеряться в деталях. Поэтому Permifrost очень удобен: мы просто создаём YAML-файл, в котором описываем уже существующие объекты:
- ROLES (можно группировать по App, Base, Functional и т.д.; каждая роль может быть _admin
, _modify
, _view
);
- DATABASES;
- USERS;
- WAREHOUSES.
После этого мы выполняем команду, и все GRANT/REVOKE обновляются.
Обычно Permifrost разворачивается через Dockerfile и настраивается на запуск в GitHub Actions раз в сутки (на всякий случай, но если изменения редкие, то и расписание не нужно).
Таким образом, все изменения прав происходят через YAML-файл и Pull Request, что делает их полностью прозрачными для всех.
Пример статьи по теме: Snowflake RBAC Implementation with Permifrost
Пример реализации от Meltano: GitHub link
Теперь расскажу, как мне пришлось разбираться с этой штукой.
В проекте, который мне нужно было просмотреть и подправить, где до меня консультанты внедряли Snowflake и dbt, необходимо было создавать новые таблицы и давать права на чтение. Но почему-то на следующий день все мои GRANTы пропадали.
Потом я создал нового пользователя для BI и дал ему права на чтение всех баз данных, но на следующий день всё снова пропало.
В документации и репозитории была информация о Permifrost, но не было самого YAML-файла с конфигурацией, и вообще было непонятно, как изначально создавалась структура в Snowflake. Но по названиям было очевидно, что использовался какой-то шаблон.
Я написал консультантам, они ответили в духе «мы ничего не знаем, лошадь не моя». Мне всё равно нужно было создать модель безопасности и взять ситуацию под контроль. Очевидное решение — использовать Permifrost.
Проблема была в том, что если я начну менять права, то мой Permifrost может забрать права у сервисных пользователей, баз данных и т.д. А я тогда ещё не до конца понимал, как всё взаимосвязано.
Следуя любимым Amazon Leadership Principles — Bias for Action, Ownership, Deliver Results — я сразу начал менять продакшн в 10 вечера. Сначала отвалился Fivetran, затем оказалось, что у меня нет даже пароля от сервисного пользователя Fivetran. Методом научного тыка я разобрался, как выстроить взаимосвязь между YAML-спеком и Snowflake, сбросил пароль пользователя, и вроде бы Fivetran заработал. На следующий день я сломал dbt, но потом всё пошло быстрее.
Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 1 Monat, 1 Woche her
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 Monat, 4 Wochen her