Канал про разное в data-мире:
- от библиотек визуализации до data egineering
- от графиков до элементов разработки
- от .csv до API
Post #183
270



😎😁 А какие у вас рабочие мемы ?
.
#meme
.
#meme
- 😐 4
- 👎 1
- 😁 1
WH @double_data



ORDER BY (param1, param2, ...., paramN)
ORDER BY (report_date, gender, ....)
explain estimate select * from your_table
vs
explain estimate select * from your_table where ..... -- ваши условия
PARTITION BY toYYYYMM(report_date)
select *
from your_table
where toDate(report_date) >= ....
-- toStartOfWeek(date) = ....
и тд
report_date >= toDate('2025-01-01'')).PARTITION BY toDate(report_datetime)

system.view_refreshes, дает представление:cdc.openweathermap_raw_refreshmv_v2SELECT exception
FROM system.view_refreshes
where view = 'openweathermap_raw_refreshmv_v2';
-- Code: 390. DB::Exception: Table openweathermap_raw_v2 doesn't exist.
Clickhouse MV - аналог из мира реляционных СУБД - триггеры, некий код который запускается в момент вставки блока данных в таблицу. Обычно MV выполняеют рольRefreshable materialized view (RMV) - это материализованные представления из мира реляционных субд, но с присущей Clickhouse изюминкой refreshable -> у них есть cron, CREATE MATERIALIZED VIEW cdc.openweathermap_raw_refreshmv
REFRESH EVERY 1 minute APPEND -- магия здесь 🧙♀️
TO cdc.openweathermap_raw -- приемная таблица осталась прежней
AS
SELECT record_timestamp,
record_value
FROM (
SELECT toDateTime(now(), 'Europe/Moscow') AS record_timestamp, *
FROM url('https://api.openweathermap.org/data/2.5/weather?lat=%(lat)s&lon=%(lon)s&appid=%(appid)s&units=metric',
JSONAsString, 'record_value String')
);
EVERY 1 minute) и добавляет данные в целевую таблицу APPEND.EVERY X <interval>)APPEND \ без указания - добавляете записи в таблицу или перезаписываете данные в таблицеAPPEND) и таблицу-приемник с _v2 (cdc.openweathermap_raw_refreshmv_v2, cdc.openweathermap_raw_v2)system.query_log:select type
, event_date
, event_time
, query
, tables
, query_kind
, ql.used_privileges
from system.query_log ql
where event_date >= today()
and hasAny(['cdc.openweathermap_raw_refreshmv_v2'], tables)
and type = 'QueryFinish'
order by event_time desc
limit 1
INSERT INTO cdc..tmp.inner_id.26366163-063f-4761-a990-ce80bd4253cf
...
SELECT, DROP TABLE ON cdc._tmp_replace_f572fcd715528ac1_vyyrigbhb769007a
INSERT, CREATE TABLE ON cdc..tmp.inner_id.26366163-063f-4761-a990-ce80bd4253cf
SELECT, INSERT, CREATE TABLE, DROP TABLE ON cdc.*
TABLE ENGINE ON MergeTree
CREATE TEMPORARY TABLE ON .
INSERT(record_timestamp, record_value) ON cdc..tmp.inner_id.26366163-063f-4761-a990-ce80bd4253cf
SYSTEM REFRESH VIEW <rmv_name>;



PARTITION BY RANGE (date)
(
START ('2025-01-01'::timestamp) INCLUSIVE
END ('2026-01-01'::timestamp) EXCLUSIVE
EVERY (INTERVAL '1 day')
)
ere date >= date_trunc('month', date)
ps: date_trunc('month', date) не меняет тип, он остается timestamp date >= date_trunc('month', date)::date
2️⃣ Упс, это вьюхаte >= '2025-01-01'::dateтак, отлично взлетает:
and data < '2025-02-01'::date
Но вот
between '2025-01-01'::date and '2025-02-01'::dateна исходных таблицах оба варианта работают идентично, где логика, GPORCA?
При этом,
В любом бизнесе испокон веков присутствует элемент азарта. В 1962 году Фредерик Смит подготовил для семинара в Йельском уникверситете работу, где описал службу срочной курьерской доставки.
Идея была проста: отправялешь пакет из Миссури во вторник, и, если хорошо заплатить, он прибудет в Калифорнию с среду. Легенда гласит, что за эту работу поставили низкий балл и преподаватель экономики обяснил Смиту: мол, если хотитте высокую оценку, пожавайте реалистичные идеи. Если бы этот профессор бы начальником Смита, он бы точно задушил инновационный проект еще в зародыше.
К счатью, Смит бы независимым предпринимателем, и там сама йельская работа стала заделом для службы Fedex, которую он основал в 1971 году. Кроме того, Смит был человеком азартным: когда некий банк отказался выдать остро необходимый кредит никому неизвестной компании, Смит взял последние 5000$ и поехал в Лас-Вегас. Он выиграл 27000$ в блек-джек и 24 из них потратил на топливо для перевозок.
Джек посоветовал считать, что мне выдали стопку фишек. Я могу поставить их на любой проект, который посчитаю перспективным. Чтобы делать удачные ставки, нужно много работать и тщательно обдумывать каждый шаг... Одни ставки сыграют, другие - нет. О моей работе будут судить не по успеху каждого отдельно взятого выигрыша, а по моей общей способности использовать фишки так, чтобы рабочий процесс двигался вперед.
- N - компетентный сотрудник?
- Он способен принимать взвешенные решения?
- Могут ли его усилия положительно повлиять на работу компании/команды в целом?
- Достаточно ли он талантлив, чтобы работать в нашей команде?
...Google, Amazon, Spotify, Airbnb, Netflix. Мы понятия не имеем, почему эти компании так быстро развиваются и перестраиваются. В общем, не знаю, что они пьют там у себя в Netflix, но нам нужно пить тоже самое, заключил он, подняв бокал



Плати как рок-звездам\Плати рыночный максимум:
первоклассный разработчик приносит компании не в 10 раз больше прибыли, чем на него тратиться, а примерно раз в 100. ... Билл Гейтс в своих оценках идет еще дальше: программист высочайщей квалификации стоит в десять тысяч раз больше обычного программиста
На операционной должности (мойщик окон, водитель) лучший сотрудник стоит раза в 2 больше рядового. Мороженщик-виртуоз, пожалуй, вдвое быстрее наполняет стаканчик...На счету первоклассного водителя вполовину меньше аварий, чем у среднестатистического шофера. Однако прибавочная стоимость, которую может добавить один мороженщик или один водитель единице своей продукции, имеет предел. Так что сотрудникам на операционных должностях можно платить среднюю зарплату, и компания будет функционировать вполне успешно.
... в Netflix от большинсвта сотрудников требуются творческие, нестандартные решения. На любой креативной должности профессионал высочайщего класса ценится как минимум в десят раз выше рядового сотрудника...
долго старались сформулировать критерии успешной работы и увязать их со схемой выплат.
на собрании я поздравил Лесли с тысячами новых пользователей, ... и уже собирался объявить, что ей полагается премия, как она меня перебила:
- Да, Рид, это здорово. Моя команда отлично поработала. Но кол-во новых подписок - это уже не та величина, которую нужно замерять. Это для нас больше не актуально.
Из разговора с Лесли я уяснил: система поощрительных выплат основана на слепой вере в то, что мы способны предвидеть будущее и в любой момент готовы поставить задачу, которая надолго сохранит акутальность
если вы сосредоточены на том, как получить заветную премию, вам не прийти в особое состояние духа, в котором посещают смелые идеи и совершаются неожиданные открытия
Плати рыночный максимум
Прежде чем тратить деньги, представьте, что вас вызывают ... к непосредственному начальнику и просят объяснить, почему вы выбрали именно этот рейс, эту гостинницу, этот тарифный план. Если вы с легкостью можете сформулировать, чем ваш выбор полезен для компании, значит всё в порядке - оплачивайте покупку, не спрашивая официального дозволения. Но если возникают затруднения, обойдитесь без этой траты, спросите совета у руководителя или купите что-нибудь подешевле
... даже если в отсутствии формальных процедурваши сотрудники начнут тратить чуть больше, их свобода обойдется гораздо дороже, чем удушливая атмосфера, где они будут чувствовать себя бескрылими. Если загнать их в жесткие формальные рамки и заставить по любому поводу справшивать разрешения, можно не только озлобить коллектив, но и потерять его мобильность и гибкость, которыми отличаются компании с более волными порядками