Size: a a a

2021 March 22

AZ

Anton Zadorozhniy in Data Engineers
Dmitry Titov
Странно, что почти нигде нет такой штуки как LIMIT n,m BY key1, key2 тк она кажется достаточно естественной
у нас есть SAMPLE который может вообще что угодно
 SELECT city, state, SAMPLEID
    FROM stores
    SAMPLE WHEN state = 'WI' THEN 0.25
           WHEN state = 'CA' THEN 0.5
           END
    ORDER BY 3;
источник

А

Алексей in Data Engineers
Dmitry Titov
Странно, что почти нигде нет такой штуки как LIMIT n,m BY key1, key2 тк она кажется достаточно естественной
Лимита в некоторых бд нет, или он под капотом решается через row_number
источник

VP

Vitaly Pismarev in Data Engineers
Алексей
Лимита в некоторых бд нет, или он под капотом решается через row_number
помоему, такая порнуха только в oracle
источник

А

Алексей in Data Engineers
Vitaly Pismarev
помоему, такая порнуха только в oracle
Да)
источник

DT

Dmitry Titov in Data Engineers
Anton Zadorozhniy
у нас есть SAMPLE который может вообще что угодно
 SELECT city, state, SAMPLEID
    FROM stores
    SAMPLE WHEN state = 'WI' THEN 0.25
           WHEN state = 'CA' THEN 0.5
           END
    ORDER BY 3;
Ох, нужно вникать.
Оно позволяет взять каждую третью строчку, но только после сортировки ORDER BY?
С первого взгляда кажется, что оно будет считаться до ORDER BY?
источник

AZ

Anton Zadorozhniy in Data Engineers
Dmitry Titov
Ох, нужно вникать.
Оно позволяет взять каждую третью строчку, но только после сортировки ORDER BY?
С первого взгляда кажется, что оно будет считаться до ORDER BY?
Это все до order by, именно для сэмплирования (например в ML)
источник

AZ

Anton Zadorozhniy in Data Engineers
для ограничений по упорядоченной выборке у нас есть сахарок под название QUALIFY, но туда просто любую стандартную оконку пишут
SELECT itemid, sumprice
FROM (SELECT a1.item_id, SUM(a1.sale)
   FROM sales AS a1
   GROUP BY a1.itemID) AS t1 (item_id, sumprice)
QUALIFY RANK() OVER (ORDER BY sum_price DESC) <=100;
источник

AZ

Anton Zadorozhniy in Data Engineers
(это как HAVING, только для оконок, позволяет лишний раз не заворачивать в подзапрос)
источник

DT

Dmitry Titov in Data Engineers
Anton Zadorozhniy
для ограничений по упорядоченной выборке у нас есть сахарок под название QUALIFY, но туда просто любую стандартную оконку пишут
SELECT itemid, sumprice
FROM (SELECT a1.item_id, SUM(a1.sale)
   FROM sales AS a1
   GROUP BY a1.itemID) AS t1 (item_id, sumprice)
QUALIFY RANK() OVER (ORDER BY sum_price DESC) <=100;
А, понятно.

Ну SAMPLE все равно выглядит интересным.
источник

AZ

Anton Zadorozhniy in Data Engineers
Dmitry Titov
А, понятно.

Ну SAMPLE все равно выглядит интересным.
о да, он могуч
источник

AZ

Anton Zadorozhniy in Data Engineers
в добавок ко всему этому он сэмплам дает номера, служебное слово SAMPLEID
источник

NN

No Name in Data Engineers
Anton Zadorozhniy
для ограничений по упорядоченной выборке у нас есть сахарок под название QUALIFY, но туда просто любую стандартную оконку пишут
SELECT itemid, sumprice
FROM (SELECT a1.item_id, SUM(a1.sale)
   FROM sales AS a1
   GROUP BY a1.itemID) AS t1 (item_id, sumprice)
QUALIFY RANK() OVER (ORDER BY sum_price DESC) <=100;
Вот после ТД в других СУБД мне именно квалифая недоставало особенно сильно, по крайней мере первое время
источник

DT

Dmitry Titov in Data Engineers
Anton Zadorozhniy
в добавок ко всему этому он сэмплам дает номера, служебное слово SAMPLEID
А с диска он все читает? или только размер семпла+-?
источник

AZ

Anton Zadorozhniy in Data Engineers
No Name
Вот после ТД в других СУБД мне именно квалифая недоставало особенно сильно, по крайней мере первое время
В Snowflake есть тож теперь, вообще странно что в стандарт не попадёт, такой довольно очевидный и несложный syntax sugar
источник

AZ

Anton Zadorozhniy in Data Engineers
Dmitry Titov
А с диска он все читает? или только размер семпла+-?
Если сэмпл по числу строк - только минимум (можно отдельно сказать with randomized allocation, тогда он дополнительно прочитает и рандомизирует), сэмпл по фракциям идёт от всего резалтсета, так что все прочитает
источник

DT

Dmitry Titov in Data Engineers
Anton Zadorozhniy
Если сэмпл по числу строк - только минимум (можно отдельно сказать with randomized allocation, тогда он дополнительно прочитает и рандомизирует), сэмпл по фракциям идёт от всего резалтсета, так что все прочитает
Ага, понятно
источник

AZ

Anton Zadorozhniy in Data Engineers
То есть минимум зависит от того какая таблица, колоночная или строчная, лежит у нас на диске или паркетом в S3, но смысл тот же для всех
источник

P

Pavel in Data Engineers
Повелитель Бури
И ? В чем соль?
Gzip unsplittable
источник

UD

Uncel Duk in Data Engineers
Pavel
Gzip unsplittable
Есть костыли
источник

UD

Uncel Duk in Data Engineers
Склеивать несколько архивов
источник