Amazon

Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Amazon

Post by Сабина »

Kateryna wrote:контора о которой пишет Сабина не может выступать в качестве наглядного примера Оракл или Pl/SQL системы. Там все с ног на голову поставлено.
Например DBA, когда БД затыкается по какой-либо причине без всякого анализа убивает сессии и если это не помогает перегружает БД
убить 1 (одну) сессию в UNIX-e которая все остальные locked почему-то в голову не приходит. Анализом занимаются девелоперы если есть знания (редко у кого) и или желание (уже нет). Про AWR, ASH, backup, recovery, 24/7, data guard performance tuning я вообще молчу

Элементарная логика и, честно говоря, не гиганткие объемы данных (по меркам 2012) как песня ложаться в HADOOP
понанимала индюков
1 (один) толковый молодой парнишка работает около 2-х месяцев
Уж лучше он чем русскоязычные которые сделали весь этот бардак и всех новичков убеждали какая крутая вещь это г....
О привет :). Я по аватаре не сразу и узнала :)
Конечно я их не ставила в пример никак, поинт мой был в том что к Oracle/PL-SQL нужны бы еще какие-то знания, особенно если цель вырасти до архитектора. Про репорты я кстати и не вспомнила ибо не занималась ими.
"Рускоязычные" может и сделали "бардак", но контора еще тогда на нем нехилoе бабло заработала, писалось то все маленьким коллективом "ты да я да мы с тобой", быстро запустили пользуюшийся спросом на тот момент бизнес. Потом в другую контору ушли и дожили до bye out и заработали на хорошие домики в хороших местах и прочие прелести :)
Но квреи в кранчерах были совершенно гениальные, я такого нигде больше не видела :mrgreen:

Так hadoop запустили в итоге? Это он как песня? А того индуса который год назад приходил из iTunes (Apple) так и не взяли? Тоже вроде был не дурак далеко
https://www.youtube.com/watch?v=wOwblaKmyVw
mynameiszb
Уже с Приветом
Posts: 1663
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: Amazon

Post by mynameiszb »

А давайте вернемся к первоначальной теме :)
Бо - интерес услышать про внутреннюю кухню, приправленную базами данных в конкретной конторе... Т.е. - люди точно есть оттуда, но молчат :(
Что не может не настораживать...
sp123
Уже с Приветом
Posts: 1961
Joined: 24 Feb 2001 10:01
Location: Челябинск -> Everett, WA

Re: Amazon

Post by sp123 »

Сабина wrote: Ну и все это я говорила к тому что знание Оракла самого по себе - это IMHO совсем неконкурентноспособно. Думаю без Джавы шансов на порядки меньше, unless you are DBA of course
Хм.. Может, мне просто везло так, но почему-то в реале не видел ни одного случая полноценного 50/50 Java/database разработчика. А если такое где-то требуется, то есть стойкое подозрение, что либо контора из категории рогов и копыт со смешными объемами данных, либо там не все в порядке с организацией. Это я не к тому, что не надо чего-то там изучать помимо основной работы, но и комплексовать на тему чистого database тоже не надо. Есть и спрос, и работы, и должности с хорошими зарплатами.
Zorkus
Уже с Приветом
Posts: 6969
Joined: 26 Feb 2011 17:40

Re: Amazon

Post by Zorkus »

Kateryna wrote: Например DBA, когда БД затыкается по какой-либо причине без всякого анализа убивает сессии и если это не помогает перегружает БД. убить 1 (одну) сессию в UNIX-e которая все остальные locked почему-то в голову не приходит.
ДБА-шник не должен убивать сессию просто так, не спросив предварительно девелоперов, что происходит в системе с точки зрения бизнес логики в этот момент. А то так можно вообще просто - вырос CPU utilization до 80 процентов, прибили top-usage session, вырос до 97% - ребутнули инстанс. Красота :) И ДБА-шники никакие не нужны тогда. Девелоперы и должны тут же помогать анализировать. Подразумевается, что такие знания есть у всех девелоперов, кто работает с бизнес-логикой и бек-эндом, и желания помочь починить продакшен или UAT базу тоже есть. Про бекапы и дата гард девелоперу знать нужды нет (хотя не помешает для общего развития), а вот про grid control (хотя бы часть его), планы запросов, и базовые принципы выполнения запроса (физического выполнения) знать должны.
Kateryna wrote:говорят о том что в системе:
- нет конфигурационной логики, таблиц (вся логика в ветвистых case непосредственно в SQL),
Ну почему. Зависит от количества логики в целом :) Может быть 500 строк в PL/SQL. и 50 тысяч на яве.
Kateryna wrote: - статистики (хинты)
Почти наверняка, да. В старых версиях оракла без хинтов иногда было трудновато, но в новых обычно нет нужды.
Zorkus
Уже с Приветом
Posts: 6969
Joined: 26 Feb 2011 17:40

Re: Amazon

Post by Zorkus »

sp123 wrote:
Сабина wrote: Ну и все это я говорила к тому что знание Оракла самого по себе - это IMHO совсем неконкурентноспособно. Думаю без Джавы шансов на порядки меньше, unless you are DBA of course
Хм.. Может, мне просто везло так, но почему-то в реале не видел ни одного случая полноценного 50/50 Java/database разработчика. А если такое где-то требуется, то есть стойкое подозрение, что либо контора из категории рогов и копыт со смешными объемами данных, либо там не все в порядке с организацией. Это я не к тому, что не надо чего-то там изучать помимо основной работы, но и комплексовать на тему чистого database тоже не надо. Есть и спрос, и работы, и должности с хорошими зарплатами.
Ну 50/50 редко бывает, хотя я видел. Но 55/35 нормально вполне :)
sp123
Уже с Приветом
Posts: 1961
Joined: 24 Feb 2001 10:01
Location: Челябинск -> Everett, WA

Re: Amazon

Post by sp123 »

Zorkus wrote:В старых версиях оракла без хинтов иногда было трудновато, но в новых обычно нет нужды.
Немного off-topic. Вопрос на интервью. Приведите примеры, когда хинт нужен в обязательном порядке. Версия Oracle пусть будет самая распоследняя, значения не имеет.
mynameiszb
Уже с Приветом
Posts: 1663
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: Amazon

Post by mynameiszb »

sp123 wrote:Немного off-topic. Вопрос на интервью. Приведите примеры, когда хинт нужен в обязательном порядке. Версия Oracle пусть будет самая распоследняя, значения не имеет.
Значение имеет. Потому как разные оптимизаторы от версии к версии (это раз). Сбор статистики могут отрубить на базе (видел такое, это два). Т.е. - опять же, без реального понимания распределения данных - оптимизатор может "тупить" на ваших данных. На перекошенных данных при малом проценте выборки по статистике - так же хинт может помочь (это три).

Ну и иногда с bind-variable запросах тоже хинтование может помочь.

Хотя "обязательном порядке" - звучит угрожающе :)
sp123
Уже с Приветом
Posts: 1961
Joined: 24 Feb 2001 10:01
Location: Челябинск -> Everett, WA

Re: Amazon

Post by sp123 »

mynameiszb wrote:
sp123 wrote:Немного off-topic. Вопрос на интервью. Приведите примеры, когда хинт нужен в обязательном порядке. Версия Oracle пусть будет самая распоследняя, значения не имеет.
Значение имеет. Потому как разные оптимизаторы от версии к версии (это раз). Сбор статистики могут отрубить на базе (видел такое, это два). Т.е. - опять же, без реального понимания распределения данных - оптимизатор может "тупить" на ваших данных. На перекошенных данных при малом проценте выборки по статистике - так же хинт может помочь (это три).

Ну и иногда с bind-variable запросах тоже хинтование может помочь.

Хотя "обязательном порядке" - звучит угрожающе :)
Ну вот вариант: в pl/sql вы делаете join collection с использованием table(cast()) с реальной большой таблицей. Про вашу collection никакой оптимизатор заранее ничего не знает, это и не таблица вовсе, и без хинта типа cardinality или leading не обойтись.

Еще вариант - вы переливаете данные в таблицу, и хотите сделать это максимально быстро. Оптимизатор про ваше желание ничего не знает, и вставлять записи above high watermark самостоятельно не решится, пока вы явно не дадите ему хинт append. То же самое с хинтом parallel.
Zorkus
Уже с Приветом
Posts: 6969
Joined: 26 Feb 2011 17:40

Re: Amazon

Post by Zorkus »

sp123 wrote:
Zorkus wrote:В старых версиях оракла без хинтов иногда было трудновато, но в новых обычно нет нужды.
Немного off-topic. Вопрос на интервью. Приведите примеры, когда хинт нужен в обязательном порядке. Версия Oracle пусть будет самая распоследняя, значения не имеет.
Таких, чтобы был нужен всегда (т.е. на любых практических наборах данных, не лечился переписыванием запроса нормально или изменением, если нужно, параметров инстанса оракла) - не припомню чтобы видел :( Покажите пример? Я предположу, что вы говорите о хинтах типа unnest, push_subq и так далее, "strategy hints", как о них Льюис писал?
mynameiszb
Уже с Приветом
Posts: 1663
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: Amazon

Post by mynameiszb »

sp123 wrote:Ну вот вариант: в pl/sql
Хех, слона-то я и не приметил :)
Про pl/sql как-то из головы выпало.

Спасибо, надо будет не забывать :)
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Amazon

Post by Сабина »

Zorkus wrote:
sp123 wrote:
Zorkus wrote:В старых версиях оракла без хинтов иногда было трудновато, но в новых обычно нет нужды.
Немного off-topic. Вопрос на интервью. Приведите примеры, когда хинт нужен в обязательном порядке. Версия Oracle пусть будет самая распоследняя, значения не имеет.
Таких, чтобы был нужен всегда (т.е. на любых практических наборах данных, не лечился переписыванием запроса нормально или изменением, если нужно, параметров инстанса оракла) - не припомню чтобы видел :( Покажите пример? Я предположу, что вы говорите о хинтах типа unnest, push_subq и так далее, "strategy hints", как о них Льюис писал?
Да никто ж не спорит что хинты для совместимости и последний Оракл такой премудрый, что оптимизирует лучше хомо сапиенсов. Но все равно на деле пользовались ими всегда и не в таких уж безизвестных конторах. А я с Оракла всего год как слезла
https://www.youtube.com/watch?v=wOwblaKmyVw
Zorkus
Уже с Приветом
Posts: 6969
Joined: 26 Feb 2011 17:40

Re: Amazon

Post by Zorkus »

sp123 wrote:
mynameiszb wrote:
sp123 wrote:Немного off-topic. Вопрос на интервью. Приведите примеры, когда хинт нужен в обязательном порядке. Версия Oracle пусть будет самая распоследняя, значения не имеет.
Значение имеет. Потому как разные оптимизаторы от версии к версии (это раз). Сбор статистики могут отрубить на базе (видел такое, это два). Т.е. - опять же, без реального понимания распределения данных - оптимизатор может "тупить" на ваших данных. На перекошенных данных при малом проценте выборки по статистике - так же хинт может помочь (это три).

Ну и иногда с bind-variable запросах тоже хинтование может помочь.

Хотя "обязательном порядке" - звучит угрожающе :)
Ну вот вариант: в pl/sql вы делаете join collection с использованием table(cast()) с реальной большой таблицей. Про вашу collection никакой оптимизатор заранее ничего не знает, это и не таблица вовсе, и без хинта типа cardinality или leading не обойтись.

Еще вариант - вы переливаете данные в таблицу, и хотите сделать это максимально быстро. Оптимизатор про ваше желание ничего не знает, и вставлять записи above high watermark самостоятельно не решится, пока вы явно не дадите ему хинт append. То же самое с хинтом parallel.
С join collection я не работал, а вот про append да, забыл - извиняюсь. Полезный хинт. (хотя http://asktom.oracle.com/pls/asktom/f?p ... 0346279484 - Кайт и писал свою критику про него, я нахожу этот хинт помогающим). Но мы когда оптимизировали быструю загрузку больших объемов данных, как-то быстро перешли к загрузки через распараллеленной загрузке через sql ldr direct load.

Кстати, по моему direct insert работает по дефолту в EE версии, когда для сессии включен параллелизм.
mynameiszb
Уже с Приветом
Posts: 1663
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: Amazon

Post by mynameiszb »

Zorkus wrote:а вот про append да...
Кстати, по моему direct insert работает по дефолту в EE версии, когда для сессии включен параллелизм.
Что-то не вспомню на вскидку, а в доки лезть лень... А разве у нас insert append не льет в параллель, если это при создании таблицы задано?
sp123
Уже с Приветом
Posts: 1961
Joined: 24 Feb 2001 10:01
Location: Челябинск -> Everett, WA

Re: Amazon

Post by sp123 »

mynameiszb wrote:
Zorkus wrote:а вот про append да...
Кстати, по моему direct insert работает по дефолту в EE версии, когда для сессии включен параллелизм.
Что-то не вспомню на вскидку, а в доки лезть лень... А разве у нас insert append не льет в параллель, если это при создании таблицы задано?
При создании таблицы могло стоять noparallel, ну или какое-нибудь небольшое parallel для повседневных нужд. А тут одноразовый страшный insert с parallel = 300.
Zorkus
Уже с Приветом
Posts: 6969
Joined: 26 Feb 2011 17:40

Re: Amazon

Post by Zorkus »

sp123 wrote:
mynameiszb wrote:
Zorkus wrote:а вот про append да...
Кстати, по моему direct insert работает по дефолту в EE версии, когда для сессии включен параллелизм.
Что-то не вспомню на вскидку, а в доки лезть лень... А разве у нас insert append не льет в параллель, если это при создании таблицы задано?
:fr:
При создании таблицы могло стоять noparallel, ну или какое-нибудь небольшое parallel для повседневных нужд. А тут одноразовый страшный insert с parallel = 300.
Да, согласен. my bad :fr: В этом случае, когда надо оверрайдить параллелизм, который на таблице был выставлен, нужен будет хинт. А можно пример когда 300 нужно параллел? когда партишенов много?
mynameiszb
Уже с Приветом
Posts: 1663
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: Amazon

Post by mynameiszb »

Zorkus wrote:
sp123 wrote:А тут одноразовый страшный insert с parallel = 300.
А можно пример когда 300 нужно параллел? когда партишенов много?
Да, поделитесь примером, пожалуйста. А то обычно при перезаливках использовал где-то 8, вполне хватало по объемам/срокам...
Easbayguy
Уже с Приветом
Posts: 10599
Joined: 17 Jul 2003 22:11

Re: Amazon

Post by Easbayguy »

mynameiszb wrote:
Zorkus wrote:
sp123 wrote:А тут одноразовый страшный insert с parallel = 300.
А можно пример когда 300 нужно параллел? когда партишенов много?
Да, поделитесь примером, пожалуйста. А то обычно при перезаливках использовал где-то 8, вполне хватало по объемам/срокам...
Ну я на прошлой неделе 4 таблички связывал в двух по 5 миллиардов записей и в двух по 300 миллионов,
как раз пришлось 300 параллельность использовать.
Пх'нглуи мглв'нафх Ктулху Р'лайх угахнагл фхтагн
mynameiszb
Уже с Приветом
Posts: 1663
Joined: 16 Jul 2009 14:18
Location: Uganda

Re: Amazon

Post by mynameiszb »

Easbayguy wrote:Ну я на прошлой неделе 4 таблички связывал в двух по 5 миллиардов записей и в двух по 300 миллионов,
как раз пришлось 300 параллельность использовать.
Душевно. С такими объемами никакое партицирование не спасет :)
Zorkus
Уже с Приветом
Posts: 6969
Joined: 26 Feb 2011 17:40

Re: Amazon

Post by Zorkus »

Easbayguy wrote:
mynameiszb wrote:
Zorkus wrote:
sp123 wrote:А тут одноразовый страшный insert с parallel = 300.
А можно пример когда 300 нужно параллел? когда партишенов много?
Да, поделитесь примером, пожалуйста. А то обычно при перезаливках использовал где-то 8, вполне хватало по объемам/срокам...
Ну я на прошлой неделе 4 таблички связывал в двух по 5 миллиардов записей и в двух по 300 миллионов,
как раз пришлось 300 параллельность использовать.
А на каком железе, и сколько ядер?
User avatar
Albert_al
Уже с Приветом
Posts: 2305
Joined: 14 Apr 1999 09:01
Location: Ural->CA

Re: Amazon

Post by Albert_al »

sp123 wrote:Приведите примеры, когда хинт нужен в обязательном порядке.
Driving_site :radio%: Когда большая таблица там, а мелкая здесь
Alcohol, Tobacco, Firearms, and Explosives. The makings of a great weekend in West Virginia!
User avatar
Albert_al
Уже с Приветом
Posts: 2305
Joined: 14 Apr 1999 09:01
Location: Ural->CA

Re: Amazon

Post by Albert_al »

mynameiszb wrote:[Сбор статистики могут отрубить на базе (видел такое, это два)
MTS with CBOSS :D
Alcohol, Tobacco, Firearms, and Explosives. The makings of a great weekend in West Virginia!
User avatar
Albert_al
Уже с Приветом
Posts: 2305
Joined: 14 Apr 1999 09:01
Location: Ural->CA

Re: Amazon

Post by Albert_al »

sp123 wrote:и вставлять записи above high watermark самостоятельно не решится, пока вы явно не дадите ему хинт append
Только желателно не из нескольких процессов одновременно :-)
Alcohol, Tobacco, Firearms, and Explosives. The makings of a great weekend in West Virginia!
User avatar
Albert_al
Уже с Приветом
Posts: 2305
Joined: 14 Apr 1999 09:01
Location: Ural->CA

Re: Amazon

Post by Albert_al »

Сабина wrote: А я с Оракла всего год как слезла
А я все еше не, на хлебушко хватает :-)
Alcohol, Tobacco, Firearms, and Explosives. The makings of a great weekend in West Virginia!
mr boombastic
Уже с Приветом
Posts: 150
Joined: 18 May 2012 20:00

Re: Amazon

Post by mr boombastic »

думаю надо поделится опытом интервью с амазоном. дело было пару чемяцев назад.
очень интересный процесс

позиция была абсолютно не связана с моей спецификой. я с++, server side.

а там весь stack это java.

3 technical phone screens. 5 on-site.

phones screens проходят по collabedit. чиркаешь код на компютере,интервьюер это видит.

1st screen с американцем
1.a - reverse a linked list (solved)
1.b - given an integer array and a sum, find all the pairs that sum up to a given number(solved)
1.c - some discussion about running times of basic sorting algorithms(answered) and current work.

2nd phone screen - индус
2.a - given a string and a map (char, int)(character and the number of occurences of that character in the given string), find the minimum length
subsequence that contains all the characters from the map satisfying the number of accounts(solved but poorly. Could not provide a better solution
beyond just a barely working version)
2.b - given an n-ary tree,say, struct node{list<node*> children; node* parent;node* next;/*initially set to null*/}, have the next pointer point to every sibling.
[solved-сделал одну ошибку и не догадался какую. только когда трубку положил.]
2.c - some discussion about current work.

после этого интервью думал пошлют. не послали-


3rd phone screen - какой то восточно европеец. может даже и русский.
3.a - implement a hash table. "doesn't have to be production quality code" [solved]
3.b - some simple coding question that involved using a hash table.[solved]
3.c - some discussion about SOA. (не моя специфика но вроде на говорил там что то поделу.)

ON-SITE
1. talked to recuiter.ерунда.

2. с америкосом.
2.a - white board question:Given a set of points on a 2-D plane and a given point (x,y) find 5 closest ones
[решил но такое чувство что он был чистым джавистом и хотя разрешил мне использовать C++/STL не много терялся читая STL-ный код с функторами и с итераторами.впрочем
у меня такое подозрение со всеми интервьюерами стало возникать потом. вообщем какой то не доволен.]
2.b - поговорить о том как можно реализовать фичу - "customers who bought this item also bought this item" - поговорил.

3. америкос.
3.a - спросил-помню ли я первую задачу с первого скрина? сделать то же самое только если дано 3 массива и одно число и что бы был scaleable.
-решил но он нашёл ошибку. спросил как ещё можно сделать если было бы не 3 а 4 массива.

4.ланч - америкос.
тут не повезло не много. он сказал что мы с тобой просто поговорим про дизайн.
4.a - как спроектировать elevator system.[я начал говорить чушь. впрочем я и не умею дизайнить таким образом не фига так что ничего неожиданного.]
4.b - вот тут интересно. вышли мы с ним из ресторана и шли обратно в оффис - он меня - смотри. есть 2 бинарных поисковых дерев. как проверить структурно ли они одинаковы?
я пол минуты думая- пройтись pre-order, потом пройтись post-order реверснуть и проверить одинаковые ли значиения? он такой задумался.я себя же спрашиваю в слух-
а это будет работать? он подумал я его спросил. он мне- наверное будет. потом-тебе не кажется это слишком много работы? я ему - в смысле? и тут приходим к интервью рум и
он мне- у нас тут ещё 3 минуты, давай ты за кодишь это быстренько. только сделай в один проход. я пишу рекурсивный вариант без явных реверсах. он такой-есть ошибка и сам
поправил(код не работал бы при разных высот деревьях.) с фоткал код на камеру и ушел. он ушел и я тут же ещё одну ошибку нашёл. бумаю - блеать!

5. индус
5.a - за дизайнить какую то не хитрую структуру данных вроде LRU и некоторые операции над ними. не помню точно. я использовал что то влоде списка итератров на хэш таблицу.
там опять у джависта возникла путанница с C++/STL семантикой. вроде как бы он понимал что я хочу делать но как бы и сомневался.

5.b - набрасать структуру данных для "auto complete". я ему сказал про суффиксные деревья. он сказал что он не против но умею ли я их создавать. я сказал нет.
только гнать про них умею. он попросил накидать ему именно то что умею или сочинить тут быстренько. стал сочинять. видимо не очень удачно. надо было через графы что
то замутить скорее всего.

5.c - всякий простинький теоретический шерпотрёб.

6. индус

6.a - given an expression tree for a given expression, evaluate it. достаточно sloppy coding был у меня. написал правильно с третьей попытки.
6.b - given 2 integers, swap them without using a temporary variable. это фигня простая.
6.c - задал мне вопрос который был задан одним из предыдущим интервьюером и который я решил. созналася что этот вопрос мне задавали. спросил как решил и на словах обьяснить.

итого: послали в баню.

по моим личным ощущенияя - не много не дотянул. но в целом я лично для себя остался доворен результатом. могло бы быть и хуже. вроде откровенно нигде не тупил. не один
вопрос ихний меня в тупик не ставил кроме 1 ого на втором телефонном скрине- который я прошёл однако. но чего то все равно не хватило.
User avatar
PavelSV
Уже с Приветом
Posts: 342
Joined: 11 Nov 2005 02:31
Location: Москва-->Силиконовая Долина

Re: Amazon

Post by PavelSV »

13 июня прошёл интервью в Амазоне, был уверен, что берут, и даже Кобру не активировал, а они через месяц написали, что решили не брать - уверен на 100% что из-за того, что интервьюер назначенный не смог и был индус молоденький год после университета - не взяли гады из-за возраста, типа пусть однородная команда будет.

Подумал было, что overqualified, но ведь это Амазон, богатая фирма с 46тыс. человек (Mикрософт - 90 тыс) друзья сказали, что вряд ли из-за overqualified, такой фирме наверное не жалко лишних 20-40к, чтобы опытного человека заполучить, так что всё же из-за возраста :(

В Купертино - Kindle Software - Internationalization (что есть моя специализация с 1997)
- телефонное интервью с рекрутером
- 2-е телефонное с Hiring manager - милая китаянка 37 лет, которую я заранее нашёл на LinkedIn и всё обудили за час
- личное интервью - по часу снова с ней и с тем мальчиком
На всё ответил, даже заранее купил Kindle Fire и на интервью во время related questions, достал Kindle Fire и показал и мои tools для японских кодировок и мои .ppt презентации для core developers

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

:)
Хобби: кириллица вне СНГ на компьютерах и в Интернете

Return to “Работа и Карьера в IT”