Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Работа Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
 Re: Мои наблюдения за месяц поиска работы  [new]
CawaSPb
Member

Откуда: Питер/Москва/Wroclaw
Сообщений: 1127
monsenior
пропущено...

И SUM и ROW_COUNT это часть ANSI SQL 92 года выпуска.
пруф - http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt

Ну, всё-таки конструкции SUM(), ROW_COUNT() и SUM() OVER ..., ROW_COUNT() OVER ... - "это две большие разницы".
6 июн 21, 12:37    [22331884]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
Balbidon
Member

Откуда: Donetsk->Emerald City
Сообщений: 358
monsenior

Там где процессится триллион записей, будут спрашивать не стандартный SQL, а как именно это триллион записей с
минимальными ресурсами выбрать и обработать на конкретной СУБД.


Представьте себе, там где беседовался и работал/ю я, именно спрашивали стандартный SQL. Т.к. триллион записей, очевидно, мало кто будет пережевывать на СУБД. Там уже идет Spark/Hive/Presto/Synapse/Redshift/Vertica. Естественно, correlated subquery vs. inline view и прочие общие темы по быстродействию надо знать, но в реально больших конторах одновременно используется с десяток разных систем, и никто не будет ожидать от новичка знания их особенностей.

В то же время на мелких конторах, где общий объем баз едва дотягивал до 10 TB, как раз была тенденция спрашивать всякие очень узкие особенности. Однажды меня попросили перечислить все типы страниц в SQL Server. Я назвал по памяти десять или одиннадцать типов, сказали учить матчасть. Я потом во время одного из семинаров задал такой же вопрос Kalen Delaney, она округлила глаза и спросила, а зачем их помнить наизусть, если есть документация и понимание того, как все работает.
6 июн 21, 19:19    [22331971]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
Sintetik
Member

Откуда: SpB->Msk->...
Сообщений: 9384
[quot monsenior#22331871]
Balbidon
стандартный SQL любят спрашивать всякие
DWH разрабы/аналитики, которые не хотят разбираться а что именно происходит под капотом и почему тормозит.

скорее до стандартного SQL опускаются, когда виден средний уровень потока кандидатов, что если начать копать в глубину, то вообще никого не получится нанять. Вопросы по стандартным вещам это маркер опущенной планки отбора, не более того.
6 июн 21, 22:15    [22332023]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
Balbidon
Member

Откуда: Donetsk->Emerald City
Сообщений: 358
Sintetik
Вопросы по стандартным вещам это маркер опущенной планки отбора, не более того.


Пожалуй, можно согласиться, но есть нюанс. Стандартные вещи — это не вопрос о типах джойнов, а умение их правильно применить.

В ведущих конторах (МС/Амазон/Гугл/ФБ/т.д.) вообще достаточно мало спрашивают узкие знания, неважно, на какую позицию, хоть на Software Engineer, хоть на Data Engineer. Спрашивают алгоритмы и прочие универсальные вещи, т.к. людей в компаниях очень много, и нужно, чтобы все разговаривали на одном языке. Раньше все было иначе, всем рулили гении, мало задумывавшиеся о поддержке кода другими людьми в будущем. Как результат, МС до сих пор не может "отмыться" от репутации супер-глючной Винды.

Меня это сначала тоже ставило в тупик, пока я окончательно не отбросил свои замашки супер-пупер знатока замороченных хинтов и глубоких особенностей. Конечно, есть позиции, где именно это и нужно, но их становится все меньше. В энтерпрайзе не нужен умелец Левша Кулибин, мало того, он там вреден.

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

Все вышесказанное, естественно, является собственным мнением, пусть и подкрепленным некоторым опытом.
7 июн 21, 01:06    [22332057]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
hVostt
Member

Откуда:
Сообщений: 19322
Balbidon
В энтерпрайзе не нужен умелец Левша Кулибин, мало того, он там вреден.


Ещё как нужен. Более того, они там присутствуют в критически значимых местах.
По сути, на них всё и держится.
7 июн 21, 02:47    [22332063]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
Balbidon
Member

Откуда: Donetsk->Emerald City
Сообщений: 358
hVostt


Ещё как нужен. Более того, они там присутствуют в критически значимых местах.
По сути, на них всё и держится.


Да, прошу прощения, неправильно выразился. В нормальном энтерпрайзе данный Левша Кулибин называется Technical Fellow. И он не занимается стандартным кодингом. Он определяет направление развития или несет ответственность за особо критичные участки, как вы справедливо заметили. Но таких людей всего сотня-две на, скажем, Амазон.

Для рядовых же уровней сильное отклонение от стандартного процесса однозначно вредно. Если каждый из 50 тысяч разработчиков начнет тулить какие-то хитрые штуки, которые понимает и может только он, то разработка встанет, т.к. все усилия пойдут на поддержку.

В одном проекте мы с коллегой убили два дня на переписывание запроса под особенности Redshift. Получили трехкратный рост производительности, с 8 часов до 2.5. Менеджер похвалил и попросил вернуть к стандартному виду, т.к. затраты на поддержку нашего решения были бы ощутимо выше.
7 июн 21, 03:30    [22332067]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 7018
Balbidon
В одном проекте мы с коллегой убили два дня на переписывание запроса под особенности Redshift. Получили трехкратный рост производительности, с 8 часов до 2.5. Менеджер похвалил и попросил вернуть к стандартному виду, т.к. затраты на поддержку нашего решения были бы ощутимо выше.

как именно он собрался поддерживать этот запрос? если он работает - то он работает, зачем его "поддерживать"?
7 июн 21, 05:32    [22332068]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
Balbidon
Member

Откуда: Donetsk->Emerald City
Сообщений: 358
alex-ls
как именно он собрался поддерживать этот запрос? если он работает - то он работает, зачем его "поддерживать"?


Пардон, наверное, недостаточно понятно объяснил. Я говорил "решения".

Это был не просто один запрос, запрос был частью ETL процесса. Т.е. один оператор SELECT мы разбили на серию запросов с промежуточной материализацией и разными partitioning и distribution настройками.

Под поддержкой, естественно, подразумевалась простота изменения списка возвращаемых полей, а также возможное изменение логики выборки. А также еще одна потенциальная миграция в будущем с одной платформы на другую.
7 июн 21, 07:40    [22332073]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 7018
Balbidon
alex-ls
как именно он собрался поддерживать этот запрос? если он работает - то он работает, зачем его "поддерживать"?


Пардон, наверное, недостаточно понятно объяснил. Я говорил "решения".

Это был не просто один запрос, запрос был частью ETL процесса. Т.е. один оператор SELECT мы разбили на серию запросов с промежуточной материализацией и разными partitioning и distribution настройками.

Под поддержкой, естественно, подразумевалась простота изменения списка возвращаемых полей, а также возможное изменение логики выборки. А также еще одна потенциальная миграция в будущем с одной платформы на другую.

ну тут он прав, вы вместо запроса нагородили целый огород, который работает не пойми как. а если бы вы просто переписали запрос, то он был бы только рад. Вам как раз не хватило глубоких знаний...
7 июн 21, 08:34    [22332078]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
Balbidon
Member

Откуда: Donetsk->Emerald City
Сообщений: 358
alex-ls,

Возможно и не хватило, но не только нам. Благодаря близости к разработчикам Redshift мы смогли задать им прямой вопрос про конкретный момент нашего запроса. И получили от них рекомендации по созданию огорода.

И команде было понятно, что и как у нас работало, и почему так было сделано. Но было принято решение пожертвовать быстродействием ради простоты.
7 июн 21, 08:48    [22332080]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
hVostt
Member

Откуда:
Сообщений: 19322
Balbidon
Для рядовых же уровней сильное отклонение от стандартного процесса однозначно вредно. Если каждый из 50 тысяч разработчиков начнет тулить какие-то хитрые штуки, которые понимает и может только он, то разработка встанет, т.к. все усилия пойдут на поддержку.


Ну погодите :)
Вы почему-то одно противопоставляете другому.

Если Кулибин что-то там пишет на эльфийском, понятном только ему одному, эту работу сложно или невозможно поддержать без этого Кулибина, это никакой не Кулибин и профессионалом назвать его сложно, такая работа больше похожа не диверсию.

Одно из качеств профессионала, это соблюдать баланс, выбирать компромисс между быстро и качественно. А перспектива дальнейшей поддержки учитывается в первую очередь.

Balbidon
Менеджер похвалил и попросил вернуть к стандартному виду, т.к. затраты на поддержку нашего решения были бы ощутимо выше.


Ну значит цель не была достигнута. О затратах вы должны знать и сами стремиться к их снижению. Почему это делает менеджер тоже непонятно :)
7 июн 21, 09:27    [22332089]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 7018
hVostt
Если Кулибин что-то там пишет на эльфийском, понятном только ему одному, эту работу сложно или невозможно поддержать без этого Кулибина, это никакой не Кулибин и профессионалом назвать его сложно, такая работа больше похожа не диверсию.

Одно из качеств профессионала, это соблюдать баланс, выбирать компромисс между быстро и качественно. А перспектива дальнейшей поддержки учитывается в первую очередь.

вот именно! профессионал не должен писать код, который потом невозможно поддерживать.
7 июн 21, 10:05    [22332107]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
yob
Member

Откуда:
Сообщений: 50
Предлагаю отранжировать Лешей Кулибиных, рассмотрев причины их появления.

Например:
1) Человек поставлен в жесткие рамки технологического стека и должен использовать все предоставленные продуктом ресурсы по максимуму.
2) Он явно занимается подрывной деятельностью
3) Не понимает, что он делает

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

Это ладно, когда разработка ведется исключительно используя клиент в небольших группах где понятно, что реализовано только самой группе. Возможно ли категоризовать такую группу как "Группа Кулибиных"?

Почему вы упираетесь в Ansi 92? Он не меняется? Туда не вносятся изменения ?
7 июн 21, 10:25    [22332119]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
YuriyRusinov
Member

Откуда: Санкт-Петербург
Сообщений: 754
yob
Предлагаю отранжировать Лешей Кулибиных, рассмотрев причины их появления.


Поясните пожалуйста кто это Леша Кулибин, насколько мне известно, исторического прототипа такого человека звали Иван.
7 июн 21, 10:48    [22332129]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
mefman
Member

Откуда:
Сообщений: 3473
YuriyRusinov
yob
Предлагаю отранжировать Лешей Кулибиных, рассмотрев причины их появления.


Поясните пожалуйста кто это Леша Кулибин, насколько мне известно, исторического прототипа такого человека звали Иван.

Изначально он был "Левша"
7 июн 21, 10:51    [22332131]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
yob
Member

Откуда:
Сообщений: 50
YuriyRusinov
yob
Предлагаю отранжировать Лешей Кулибиных, рассмотрев причины их появления.


Поясните пожалуйста кто это Леша Кулибин, насколько мне известно, исторического прототипа такого человека звали Иван.

Если цитировать автора, то человека зовут "Левша Кулибин"

Соответственно, предлагаю так же промаркировать Левшей Кулибиных, Иванов Кулибиных, Левшей. Дабы потом ранжировать внутри, ведь, вероятно, и причинно следственные связи их появления будут отличаться.

Спасибо.
7 июн 21, 10:53    [22332134]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
monsenior
Member

Откуда: Москва
Сообщений: 933
yob
Предлагаю отранжировать Лешей Кулибиных, рассмотрев причины их появления.

Например:
1) Человек поставлен в жесткие рамки технологического стека и должен использовать все предоставленные продуктом ресурсы по максимуму.
2) Он явно занимается подрывной деятельностью
3) Не понимает, что он делает

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

Это ладно, когда разработка ведется исключительно используя клиент в небольших группах где понятно, что реализовано только самой группе. Возможно ли категоризовать такую группу как "Группа Кулибиных"?

Почему вы упираетесь в Ansi 92? Он не меняется? Туда не вносятся изменения ?


Такие Леши Кулибины появляются чаще всего в компаниях где все через ж.... или мало ресурсов.
И эти люди в это г...не умудряются давать решения которые работают(про качество решений не говорим).
Те разрабы которые любят все через SOLID и паттерны, такие компании зачастую обходят стороной
или надолго не задерживаются.
Потом когда ресурсы появляются, Кулибыных чаще всего держат в качестве благодарности, дают
должность что то вроде - консультант ИТ директора по вопросам[подставьте сами] и платят хорошую зп.
Обычно Кулибины сидят в компании до момента - когда бизнес или накрывается и/или его покупают.
Отсюда кстати истории о том что мол злые люди купили компанию(ВК/Однокласники/ООО Рога и Копыта) и
выкинули отцов-основателей(Дуров/Джобс/Кулибин).
7 июн 21, 14:39    [22332330]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
Balbidon
Member

Откуда: Donetsk->Emerald City
Сообщений: 358
hVostt
Balbidon
Для рядовых же уровней сильное отклонение от стандартного процесса однозначно вредно. Если каждый из 50 тысяч разработчиков начнет тулить какие-то хитрые штуки, которые понимает и может только он, то разработка встанет, т.к. все усилия пойдут на поддержку.


Ну погодите :)
Вы почему-то одно противопоставляете другому.

Если Кулибин что-то там пишет на эльфийском, понятном только ему одному, эту работу сложно или невозможно поддержать без этого Кулибина, это никакой не Кулибин и профессионалом назвать его сложно, такая работа больше похожа не диверсию.

Одно из качеств профессионала, это соблюдать баланс, выбирать компромисс между быстро и качественно. А перспектива дальнейшей поддержки учитывается в первую очередь.

Balbidon
Менеджер похвалил и попросил вернуть к стандартному виду, т.к. затраты на поддержку нашего решения были бы ощутимо выше.


Ну значит цель не была достигнута. О затратах вы должны знать и сами стремиться к их снижению. Почему это делает менеджер тоже непонятно :)


Позволю себе небольшой лонгрид в ответ.

1. Задача с "недостигнутой целью" была реализована в свободное время. Т.е. основные задачи проекта были полностью решены и приняты, но еще осталось некоторое количество предоплаченных заказчиком часов, которые мы решили потратить на оптимизацию этого и некоторых других pipelines. Оригинальный запрос вышеупомянутой задачи имел, если мне не изменяет память, следующий упрощенный вид:

SELECT
    <Field1>,
    ...,
    <FieldN>
FROM
    Big_Fact_Table AS bft
        INNER JOIN
        Dimension_Table_1 AS dt1 ON bft.column_1 = dt1.ID
        INNER JOIN
        Dimension_Table_2 AS dt2 ON bft.column_2 = dt2.ID
        INNER JOIN
        Dimension_Table_3 AS dt3 ON bft.column_3 = dt3.ID


В результате, опять же, если память не подводит, был глобальный скан всей таблицы фактов (а там было несколько десятков полей, из которых нам нужно было возвращать от силы 5-7) с хеш-джойнами по всем измерениям. Но по каждому конкретному измерению в выборку должно было попадать не более 3-5 процентов таблицы. В SQL Server создание покрывающих некластерных индексов вида:

CREATE INDEX idx_bft_dt1 ON Big_Face_Table(column_1, column_2, column_3) INCLUDE (column_4, ..., column_N);
CREATE INDEX idx_bft_dt2 ON Big_Face_Table(column_2, column_1, column_3) INCLUDE (column_4, ..., column_N);
CREATE INDEX idx_bft_dt3 ON Big_Face_Table(column_3, column_1, column_2) INCLUDE (column_4, ..., column_N);


помогло бы оптимизатору заменить один скан таблицы на несколько сканов индексов, а, возможно даже, на скан индекса и поиск по другим индексам. Причем даже можно было бы убрать INCLUDE в некоторых индексах, или вынести туда неселективные столбцы.

К сожалению, на тот момент, Redshift не поддерживал создание нескольких различных индексов на одной таблице. Фактически, и сейчас понятия index там нет, все реализовано через схему распределения и порядок сортировки. Потому нам пришлось декомпозировать запрос на серию меньших с промежуточной материализацией, вида:

CREATE TABLE bftDt1
DISTSTYLE KEY
DISTKEY(column_2)
SORTKEY INTERLEAVED column_2
AS
SELECT
    <Field1>,
    ...,
    <FieldN>
FROM
    Big_Fact_Table AS bft
        INNER JOIN
        Dimension_Table_1 AS dt1 ON bft.column_1 = dt1.ID;

CREATE TABLE bftDt2
DISTSTYLE KEY
DISTKEY(column_3)
SORTKEY INTERLEAVED column_3
AS
SELECT
    <Field1>,
    ...,
    <FieldN>
FROM
    bftDt1 AS bft
        INNER JOIN
        Dimension_Table_2 AS dt2 ON bft.column_2 = dt2.ID;

CREATE TABLE bftDt3
DISTSTYLE ALL
AS
SELECT
    <Field1>,
    ...,
    <FieldN>
FROM
    bftDt2 AS bft
        INNER JOIN
        Dimension_Table_3 AS dt3 ON bft.column_3 = dt3.ID;


Как-то так. Это, естественно, просто схематическое представление, чтобы было понятнее, чего мы пытались достичь. Согласно разработчикам, это был единственный возможный вариант на тот момент.

2. Теперь перейдем к нашему Леше Кулибину. Если верить Вики, то Иван Кулибин был выдающимся изобретателем, "подавляющее большинство изобретений которого ... тогда не были реализованы". Скорее всего потому, что на тот момент уровень техники не позволял массовое производство и внедрение данных изобретений.

Левша же был мелким подмастерьем на уникальном "Proof Of Concept"-проекте, где "никакой мелкоскоп не возьмет", результатом которого (проекта) стало приведение исходного объекта "блоха механическая" в неработоспособное состояние.

Естественно, в нынешних условиях подобные профессионалы были бы очень востребованы в R&D, но уж никак не в энтерпрайзе. Т.е. ценны как штучные специалисты, но вредны как массовые.


P.S. Меня зовут Алексей, и поначалу Лёшу Кулибина я воспринял как переход на личности. Гы...
7 июн 21, 17:23    [22332444]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
yob
Member

Откуда:
Сообщений: 50
Balbidon,
Частичной материализацией убиваете блоху и не даете ей двигаться.
7 июн 21, 18:30    [22332488]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
Balbidon
Member

Откуда: Donetsk->Emerald City
Сообщений: 358
yob,

Век живи - век учись. С удовольствием изучу рекомендации от сообщества.
7 июн 21, 18:44    [22332494]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
yob
Member

Откуда:
Сообщений: 50
Balbidon
yob,

Век живи - век учись. С удовольствием изучу рекомендации от сообщества.


Что верно, то верно)
7 июн 21, 21:59    [22332564]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
Алекссс
Member

Откуда:
Сообщений: 2016
Balbidon, заставить вручную джойнить того, кто решил это хранить в Red shit?
7 июн 21, 22:10    [22332569]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
Balbidon
Member

Откуда: Donetsk->Emerald City
Сообщений: 358
yob
Balbidon
yob,

Век живи - век учись. С удовольствием изучу рекомендации от сообщества.


Что верно, то верно)


А более детальные советы по данному случаю можете дать, или предлагаете самому пытаться достичь дзена?

Я просто аналогию с убийством блохи не понял, мне показалось, что мы блоху обучили только конкретному виду прыжков, но зато они выходили более высокими. Понятно, что при изменении пропорции количества данных в измерениях наша последовательность материализации могла бы дать просадку по производительности, но в любом порядке мы получали снижение времени выполнения и расхода ресурсов в разы.
7 июн 21, 22:11    [22332572]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
Balbidon
Member

Откуда: Donetsk->Emerald City
Сообщений: 358
Алекссс
Balbidon, заставить вручную джойнить того, кто решил это хранить в Red shit?


Эмм. Из многочисленных намеков в моих предыдущих постах было очевидно, что варианты отказа от Redshift даже не рассматривались. По политическим причинам, хе-хе...

Это было бы, как если бы, скажем, Тим Кук пришел на презентацию компании с Samsung'ом.
7 июн 21, 22:15    [22332573]     Ответить | Цитировать Сообщить модератору
 Re: Мои наблюдения за месяц поиска работы  [new]
Alex Le
Member

Откуда:
Сообщений: 63
Balbidon, если брать стандартную практику DWH, то перед соединением всегда стараются отфильтровать множества, тем самым уменьшив количество соединяемых строк. В предлагаемом запросе я не увидел никакой фильтрации, то есть тут всегда будет фуллскан по таблице, а покрывающие индексы с include 5 столбцов я считаю использовать нецелесообразно, учитывая специфику DWH.
Для Oracle был бы предпочтителен параллельный план выполнения с передачей каждому потоку всего справочника (если небольшой).
Насколько я понимаю, вы тут не ушли от фуллскана, а задействовали ресуры других нод. Причём дополнительно потратили место на диске.
8 июн 21, 09:36    [22332673]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
Все форумы / Работа Ответить