topdatalab
1.27K subscribers
97 photos
10 videos
17 files
221 links
Канал поддержки книги «Как монетизировать данные». https://topdatalab.ru
Download Telegram
В компаниях часто нужно ограничить доступ к данным клиентов или филиалов.
Мне это удалось сделать в Metabase Pro, SQLMesh и Postgres.

Я использовал Row Access level в Postgres. Все управляется из кода SQLMesh.
Для это к конце SQLMesh скрипта нужно написать


JINJA_STATEMENT_BEGIN;
-- Enable Row Level Security
ALTER TABLE {{ this_model }} ENABLE ROW LEVEL SECURITY;
ALTER TABLE {{ this_model }} FORCE ROW LEVEL SECURITY;

-- RLS Policy for data_engineer role (full access)
DROP POLICY IF EXISTS rls_data_engineer_all ON {{ this_model }};
CREATE POLICY rls_data_engineer_all ON {{ this_model }} FOR ALL TO data_engineer USING (true) WITH CHECK (true);
GRANT ALL ON {{ this_model }} TO "data_engineer";

-- RLS Policy for general role (full access)
DROP POLICY IF EXISTS rls_general_select ON {{ this_model }};
CREATE POLICY rls_general_select ON {{ this_model }} FOR SELECT TO general USING (true);
GRANT SELECT ON {{ this_model }} TO "general";

-- RLS Policy for germany role (restricted by legal_entity)
DROP POLICY IF EXISTS rls_germany_select ON {{ this_model }};
CREATE POLICY rls_germany_select ON {{ this_model }} FOR SELECT TO eu USING (entity = 'Germany');
GRANT SELECT ON {{ this_model }} TO "germany";

JINJA_END;

-- ACCESS RIGHTS
ON_VIRTUAL_UPDATE_BEGIN;
ALTER VIEW @this_model SET (security_invoker = true);
ALTER VIEW @this_model SET (security_barrier = true);
GRANT SELECT ON @this_model TO "general";
GRANT SELECT ON @this_model TO germany;
ON_VIRTUAL_UPDATE_END;


Здесь используются три роли с разным доступом:
- data_engineer- полный доступ
- general - полный доступ на SELECT
- germany - доступ только к строкам, где в колонке entity написано Germany

К сожалению pre statement макросы, которые генерируют несколько строк SQL работают плохо в SQLmesh, поэтому использовал Jinja.
Также мне не удалось сделать доступы на уровне колонок. Оно заработало, но в Metabase пользователь не может видеть таблицу, если у него ограничен доступ к одной из колонок. Я пытался обойти это, но нарвался на баг в SQlMesh
https://github.com/TobikoData/sqlmesh/issues/5461

В итоге я вынес колонки с персональными данными в отдельные таблицы.

Как работает с этим Metabase: https://www.metabase.com/docs/latest/permissions/impersonation
73
Примерно с 28 мая DBT запустила новый проект FUSION.
Выглядит как ответ SQLMesh.

https://github.com/dbt-labs/dbt-fusion
Заявили, что пишут на Rust, а не на Python. Не уверен, что это правльное решение для open source проекта.
2👍1
Как я пишу код в Cursor!

1) Я использую fdd - feature driven design. Весь код лежит в иерархических папках. Стараюсь строго следовать локальности кода. В одной папке могут быть тесты, python, java scrip, jinja

2) Самое главное в каждой папке держать md файл с описанием фичи. Не больше 500 строк. Что там писать? Как вам фантазия позволяет.

3) Как вносятся изменится:
- пишу текстом что нужно в режиме Plan, auto. Тегаю нужные md файлы
- отвечаю на вопросы, детально проверяю план
- нажимаю кнопку Build, тестирую
- в новых чатах фиксю баги

Фича работает:
- Прошу курсор внести изменения в документацию. Всегда внимательно вычитываю. На мой взгляд, md файлы даже важнее самого кода
- делаю code review в Codex для uncommited изменений

Всё!
17🔥4👎1
У нас получилось завести ducklake!

Catalog в Postgres, данные в S3. Dbt смог залить данные. Удалось также подключить с локальной машины через Dbeaver.
Bueanavista больше не нужна. Как только закончим полный переезд, отпишусь
🔥17
Про увольнения от AI.
На днях созванивался с рекрутером - внедрить AI в компанию, в корой работает 700 человек.
Цель: сократить персонал до 500 человек.

Я сам работу не ищу, да и задача слишком суровая.
Но имейте ввиду, что спрос на это уже пошел!
😱8🤬7🔥32😁2👍1
Нужны люди, кто занимаются оптовыми продажами, не важно где.

Может есть у меня кто-то тут? Мне нужен звонок на 15 минут

Буду рад, если поделитесь со своими знакомыми
👍2🔥1
Робо рука, осталось нож научить держать :)
https://github.com/TetherIA/aero-hand-open
😁2
Salary Suvery 2025_1.pdf
4.6 MB
Свежее исследование про зарплаты тех специалистов в ФинТехе в UK и USA.

1) текучка высокая - 89% готовы сменить работу
2) Половина недовольны своей текущей ролью - стагнация зарплат и отсутствия роста (91% без повышения).
3) Зарплаты в data особо не растут
4) Тренд на AI - компании активно создают свои команды по работе с ИИ.
🔥4👍1
Не будь как Cloudflare - проверяй свои коммиты в AI 🙂

В последнее время пишу так:
1) Cursor Auto, Plan mode - рассказываю про то, что нужно сделать. Прошу прочитать нужные MD файлы в проекта (именно прочитать, просто тегнуть не работает). И еще прошу задать вопросы, которые непонятны
2) Cursor пишет план
3) В новом чате тегаю план, прошу его реализовать
4) В codex плагине вставляю план, прошу сравнить его с non-commit изменениями

Немного долго, но хотя бы работает. с MCP я так и не подружился. Пока их больше пишут, чем пользуются
👍10
https://antigravity.google кто-нибудь уже пробовал?
Есть отличие от курсора?

UPDATE Оф. видео: https://www.youtube.com/watch?v=nTOVIGsqCuY
🔥3
Мне в последнее время стал интересен мир лямда-обработки данных.

И это можно делать не только в дорогих AWS или Google cloud.
Hetzner S3 хранилище стоит 5 евро в месяц за терабайт!
Поднимаем там сервер, обрабатываем данные из S3 и кладем в S3 в duckdlake.
Гасим сервер.
Идеальная картинка для медленно меняющихся данных.


У нас это получилось! S3 -> dbt -> ducklake(S3)

PS: собрать конфиг для dbt оказалось непростой задачей, как-нибудь выложу его
🔥17👍5
Мне кажется сейчас интересная ситуация с наймом.

У меня пару друзей в uk искали год работу :(.
И вроде кажется, что стартапам легче нанимать людей стало, потому что рынок стал рынком работодателя.

Но с другой стороны рисковать меньше хочется: уйдешь с текущего места, помучаешься в стартапе пару месяцев, затем сам уйдешь, или тебя. И потом опять много месяцев искать работу.

Когда можно быстро найти работу - рисковать легче.

Что думаете?
💯11
Соревнование в стиле Kaggle для LLM агентов - Enterprise RAG Challenge 3

Что там есть:
1) демо бенчмарк - можно быстро проверить, что ваш агент вообще живет, читает задачи и умеет ходить в API
2) бенчмарк интернет магазина - каталог, купоны, корзина. агент должен находить некорректные сценарии и уметь честно завершать задачу отказом
3)тренировочный enterprise бенчмарк

Если хочется попробовать написать своего агета, то ERC3 сейчас один из самых удобных способов это сделать
https://erc.timetoact-group.at
Прочитал, что в Авито работает 600 аналитиков. Какая жесть. Зачем столько?

Маленькие армии сеньоров-помидоров?

https://habr-com.cdn.ampproject.org/c/s/habr.com/ru/amp/publications/978496/

В век автоматизации AI звучит как оверхед

PS: В корпорациях есть одна тема, чем больше у тебя людей в подчинении, тем больше вес. Появляются маленькие императоры.
UK здесь не исключение
🙈7👍5👎31
Metabase.pdf
84.3 KB
Месяц назад я общался с Product Manager Metabase.

Самое интересное из разговора - они создают AI агента (уже в их облачной версии).

В файле полное саммари разговора, вдруг кому пригодится
👍8