Redshift ? Anybody?

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

Re: Redshift ? Anybody?

Post by Сабина »

geek7 wrote:
Сабина wrote:
geek7 wrote:
Сабина wrote:Предсьавьте к вам бы кто нибудь подошёл и сказал "а наука иди обратно на 32 бита, тебе 64 для твоих задач совершенно не нужно ?
а почему нет? другое дело что в большинстве случаев возится с это 32, это 64 менее выгодно чем делать все на 64
Во многих конторах где я работала была другая pain - они пытались гнаться за конкурентами и продакт приходит в один день и говорит а сейчас мне надо чтобы у меня ... ( дальше идёт какой нибудь requirement из серии almost real time event processing). После чего получается что данные надо собирать и анализировать не раз в день, а раз в пять минут. А у них все небыстрое и немасштабируемое.
Поэтому новые компании, особенно стартапы, сразу строят с расчетом на это. Да, может прямо сейчас вам хватает того что есть, а может завтра уже нет. Я этот стартап джойнила, думала да у них вон и Kafka и EMR cluster и Spark. И тут же под мой первый проект оказалось что существующая архитектура "не тянет". От этого и желание запрыгнут на вагон latest and greatest поскорее. А EMR cluster( аналогия про "64 бита" :) этот вон пожалуйста сидит ждёт в облаке. Чего бы сразу туда не поставить все чем мордоваться и лепить какой нибудь процессинг на Postgres чтобы завтра все переделывать?
RDBMS не синоним небыстрое и не масштабируемое, вр многих случаях есть достаточный запас масштабируемости или вынести нужно очень небольшой кусок схемы.
а то для чего изначально выбрали Postgres действительно оптимально решать EMR или таки это и есть то для чего редшифт понадобился?
Ну так и пользователей у тех же постгрессов и майсиквелов ещё выше крыши, не мне хадупы везде мерещатся ;)
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Redshift ? Anybody?

Post by Сабина »

Попался хороший коммент про pros and cons Редшифт, староват, но уж очень в точку мущщина написал - не прибавить, не убавить.

Комент к статье
https://www.quora.com/What-are-the-pros ... n-Redshift" onclick="window.open(this.href);return false;

Вот этот
Pros:

Scarily fast. We run a 6 node SSD cluster (6 of the small nodes), and we can run aggregations on hundreds of millions of rows in a few seconds. The most crazily complex queries we've written return in less than a minute usually. Our median response time is 2 secs. Tip: run SSD clusters if you need the disk IO but don't need the storage space. It's worth it.

Cheap - it's around a 10th of the cost of competitors.

It's AWS - which works great if you're already on it, like we are at Hailo.

It's SQL - so you can pretty much cut and carve your data as you like. The fork of postgres only takes a few commands out. We've always been able to do what we want. We can go from thinking of an idea, to writing a query, to answering questions in a couple of minutes. I doubt we'd be able to do this with Hadoop/Hive.

Scalability - it's horizontally scalable. Need it to go faster? Just add more nodes.

Cons:

Doesn't enforce uniqueness. This means you'll have to be very diligent about data hygiene. If you're running distributed systems that write to Redshift, you'll probably have to use some caching system like Redis to check if you've written the data to the database already.

Very fast, but not fast enough for most web apps. This means you'll have to pull data into a caching layer, or a vanilla postgres instance if you want to serve web apps with data from Redshift.

Loading data - the fastest way to do this to take advantage of Massively Parallel Processing (what a great buzzword) is to load in from S3. Alternatively, you can do JDBC inserts, but these can't be parallelised. Ties you into the AWS stack more.

Difference from vanilla SQL - I don't necessarily view this as a bad thing, but you'll have to get your head around how to optimise the distribution of your data around the nodes using DISTKEYS, and check that you have appropriate compression on your columns. You also can't alter the datatypes of a column in a table after they've been set, which can be annoying.

Summary:

It's awesome. We've been nothing short of ecstatic. Ping me if you need any pointers.
PS. Выделенное жирным было для меня полным шоком. Нашли недавно немало неожиданных дупов, при том что в нашем ETL процессе присуствует dedup логика по unique key с md5 cache

PSS. Интересная задача - джойнить timeseries like data in warehouse (Redshift) with stream data для принятия real time decisions. Примеров где что-то вычисляют чисто из данных стрима и шлют alert - полно, но чтобы alert посылался в результате такого комбинированного анализа - нету. Конечно имеется в виду almost real time solution=alerts. Основная мысль - warehouse data, нужные для принятия решения кешировать в память ( Redis) , делать из этого дела dataframe какой нибудь и джойнить его с данными в стриме. AWS KInesis предлагает нечто подобное в Kinesis Analytics. Называется конечно по другому, но думаю делает примерно то же самое с dataframes
https://www.youtube.com/watch?v=wOwblaKmyVw
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Redshift ? Anybody?

Post by Сабина »

Впечатлил Редшифт в очередной раз, правда не без приключений. В эти выходные в процессе большого релиза пришлось до перфекции настроить sort и distribution keys таблиц по 500 миллионов -1.5 миллиарда записей. В результате чего join между оными выполняется аж за 30 секунд. Что терпимо для онлайн reports
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Redshift ? Anybody?

Post by Sergunka »

Сабина wrote:Впечатлил Редшифт в очередной раз, правда не без приключений. В эти выходные в процессе большого релиза пришлось до перфекции настроить sort и distribution keys таблиц по 500 миллионов -1.5 миллиарда записей. В результате чего join между оными выполняется аж за 30 секунд. Что терпимо для онлайн reports
А как долго добавить одну запись так, чтоб потом она попала в отчет?
"A patriot must always be ready to defend his country against his government." Edward Abbey
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Redshift ? Anybody?

Post by Сабина »

Sergunka wrote:
Сабина wrote:Впечатлил Редшифт в очередной раз, правда не без приключений. В эти выходные в процессе большого релиза пришлось до перфекции настроить sort и distribution keys таблиц по 500 миллионов -1.5 миллиарда записей. В результате чего join между оными выполняется аж за 30 секунд. Что терпимо для онлайн reports
А как долго добавить одну запись так, чтоб потом она попала в отчет?
не поняла вопрос
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Komissar
Уже с Приветом
Posts: 64875
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Redshift ? Anybody?

Post by Komissar »

Сабина wrote:
Sergunka wrote:
Сабина wrote:Впечатлил Редшифт в очередной раз, правда не без приключений. В эти выходные в процессе большого релиза пришлось до перфекции настроить sort и distribution keys таблиц по 500 миллионов -1.5 миллиарда записей. В результате чего join между оными выполняется аж за 30 секунд. Что терпимо для онлайн reports
А как долго добавить одну запись так, чтоб потом она попала в отчет?
не поняла вопрос
Брателло, объясни, что хотел, нам всем интересно.
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Redshift ? Anybody?

Post by Sergunka »

Сабина wrote:
Sergunka wrote:
Сабина wrote:Впечатлил Редшифт в очередной раз, правда не без приключений. В эти выходные в процессе большого релиза пришлось до перфекции настроить sort и distribution keys таблиц по 500 миллионов -1.5 миллиарда записей. В результате чего join между оными выполняется аж за 30 секунд. Что терпимо для онлайн reports
А как долго добавить одну запись так, чтоб потом она попала в отчет?
не поняла вопрос
Вот к примеру план выполнения запроса дан в документации
http://docs.aws.amazon.com/redshift/lat ... ution.html" onclick="window.open(this.href);return false;
QUERY PLAN
XN Merge (cost=1038007224737.84..1038007224738.54 rows=280 width=20)
Merge Key: dwdate.d_year, part.p_brand1
-> XN Network (cost=1038007224737.84..1038007224738.54 rows=280 width=20)
Send to leader
-> XN Sort (cost=1038007224737.84..1038007224738.54 rows=280 width=20)
Sort Key: dwdate.d_year, part.p_brand1
-> XN HashAggregate (cost=38007224725.76..38007224726.46 rows=280
-> XN Hash Join DS_BCAST_INNER (cost=30674.95..38007188507.46
Hash Cond: ("outer".lo_orderdate = "inner".d_datekey)
-> XN Hash Join DS_BCAST_INNER (cost=30643.00..37598119820.65
Hash Cond: ("outer".lo_suppkey = "inner".s_suppkey)
-> XN Hash Join DS_BCAST_INNER
Hash Cond: ("outer".lo_partkey = "inner".p_partkey)
-> XN Seq Scan on lineorder
-> XN Hash (cost=17500.00..17500.00 rows=56000
-> XN Seq Scan on part (cost=0.00..17500.00
Filter: ((p_category)::text =
-> XN Hash (cost=12500.00..12500.00 rows=201200
-> XN Seq Scan on supplier (cost=0.00..12500.00
Filter: ((s_region)::text = 'AMERICA'::text)
-> XN Hash (cost=25.56..25.56 rows=2556 width=8)
-> XN Seq Scan on dwdate (cost=0.00..25.56 rows=2556
Интересно было бы глянуть как выглядит план на запись? Показывает ли план все индексы построенные для этой записи.
"A patriot must always be ready to defend his country against his government." Edward Abbey
Сабина
Уже с Приветом
Posts: 19041
Joined: 11 Jan 2012 09:25
Location: CA

Re: Redshift ? Anybody?

Post by Сабина »

Sergunka wrote:
QUERY PLAN
XN Merge (cost=1038007224737.84..1038007224738.54 rows=280 width=20)
Merge Key: dwdate.d_year, part.p_brand1
-> XN Network (cost=1038007224737.84..1038007224738.54 rows=280 width=20)
Send to leader
-> XN Sort (cost=1038007224737.84..1038007224738.54 rows=280 width=20)
Sort Key: dwdate.d_year, part.p_brand1
-> XN HashAggregate (cost=38007224725.76..38007224726.46 rows=280
-> XN Hash Join DS_BCAST_INNER (cost=30674.95..38007188507.46
Hash Cond: ("outer".lo_orderdate = "inner".d_datekey)
-> XN Hash Join DS_BCAST_INNER (cost=30643.00..37598119820.65
Hash Cond: ("outer".lo_suppkey = "inner".s_suppkey)
-> XN Hash Join DS_BCAST_INNER
Hash Cond: ("outer".lo_partkey = "inner".p_partkey)
-> XN Seq Scan on lineorder
-> XN Hash (cost=17500.00..17500.00 rows=56000
-> XN Seq Scan on part (cost=0.00..17500.00
Filter: ((p_category)::text =
-> XN Hash (cost=12500.00..12500.00 rows=201200
-> XN Seq Scan on supplier (cost=0.00..12500.00
Filter: ((s_region)::text = 'AMERICA'::text)
-> XN Hash (cost=25.56..25.56 rows=2556 width=8)
-> XN Seq Scan on dwdate (cost=0.00..25.56 rows=2556
Интересно было бы глянуть как выглядит план на запись? Показывает ли план все индексы построенные для этой записи.
Кост у этой квери нехилый. Я б глянула вот в эту табличку, явно что там напортачили с sort key, distribution или еще чего
http://docs.aws.amazon.com/redshift/lat ... lerts.html" onclick="window.open(this.href);return false;

Copy делается обычной bulk командой какие там квери ? Плюс все масштабируется как резина при желании
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Sergunka
Уже с Приветом
Posts: 34164
Joined: 03 Dec 2000 10:01
Location: Vladivostok->San Francisco->Los Angeles->San Francisco

Re: Redshift ? Anybody?

Post by Sergunka »

The results can vary when additional features like distribution key, sort key or column compression are set. Most of the time these additional features are a must have to make the queries perform well. For example loading 150M records (150Gb) on the same table with a distkey and sortkey set took 1 hour, 10 minutes and 33 seconds, which means 35435 insertions / second.
Вот боле менее внятное объяснение

http://www.robertomarchetto.com/amazon_ ... ent_review" onclick="window.open(this.href);return false;
"A patriot must always be ready to defend his country against his government." Edward Abbey
User avatar
Komissar
Уже с Приветом
Posts: 64875
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

Re: Redshift ? Anybody?

Post by Komissar »

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

Re: Redshift ? Anybody?

Post by Сабина »

Sergunka wrote:
The results can vary when additional features like distribution key, sort key or column compression are set. Most of the time these additional features are a must have to make the queries perform well. For example loading 150M records (150Gb) on the same table with a distkey and sortkey set took 1 hour, 10 minutes and 33 seconds, which means 35435 insertions / second.
Вот боле менее внятное объяснение

http://www.robertomarchetto.com/amazon_ ... ent_review" onclick="window.open(this.href);return false;

Это же все очень относительно. кто его знает как он выбрал keys, чем именно грузил, а самое главное что за у него instance redshift-а, каким юзером грузил. Там же даже ресурсы, такие как память например конфигурируются per user group.
У нас данные во все таблицы грузяться каждый час с паузами "между".
https://www.youtube.com/watch?v=wOwblaKmyVw
User avatar
Ratbert
Уже с Приветом
Posts: 7442
Joined: 01 Aug 2003 05:37

Re: Redshift ? Anybody?

Post by Ratbert »

интересно что бы выбрала Сабина между умной и красивой?

Return to “Вопросы и новости IT”