Google Cloud Dataflow

Jun 25, 2014 20:07

Сегодня на Google IO (живое видео - http://google.com/io) анонсировали проект, над которым наша команда работала последние пару лет (смотря как считать) - Google Cloud Dataflow. Посмотрите - там очень прикольная демка. (перед этим, кстати - анонс cloud debugger и tracing для AppEngine - тоже офигенно крутые вещи).

Это сервис, который за вас оптимизирует и гоняет ваши распределённые вычисления - и batch, и потоковые. Например, такие (фрагменты кода из демки):

Pipeline pipeline = Pipeline.create();

PCollection tweets = pipeline.begin()
.apply(new InputFromPubSub())
.apply(new TweetTransformer());

tweets.apply(new CalculateSentiment());
tweets.apply(new CorrelateKeywords());

pipeline.run();

public class CalculateSentiment {
...
return tweets.apply(new ExtractSentiment())
.apply(Bucket.By(SlidingWindows.of(3, MINUTES)))
.apply(Mean.perKey())
.apply(new OutputAverageToBigQuery());
}

(за объяснением и пр. - смотрите анонс и демку; там минут 15-20, насколько я помню)

В общем, это гибрид FlumeJava и Millwheel, доступный in the cloud. Вы пишете программу на Java, которая конструирует и просит запустить pipeline, который, например, читает что-нибудь из Cloud PubSub, всячески мурыжит, а результат складывает в BigQuery - мы его оптимизируем (некоторые из оптимизаций описаны в статье про FlumeJava), запускаем на GCE, выделяем ресурсы, распределяем, балансируем, мониторим, восстанавливаем от крахов и пр.

MapReduce - тривиальный частный случай того, что можно делать с помощью Dataflow, выглядящий примерно как .apply(new MyMapper()).groupByKey().apply(new MyReducer()).

В ближайшие 9 вечера по московскому времени (10 утра по тихоокеанскому) на http://google.com/io можно будет наблюдать ещё одну демку этого продукта - сессия называется "The Dawn of Fast Data".

Моя роль в этом проекте - я один из разработчиков фреймворка, на котором держится этот продукт и другие связанные с ним внутренние инструменты обработки данных Гугла. "Клаудных" частей я не касался, но наблюдал за их разработкой, и они очень круты - удобство мониторинга, например, это чуть ли не главная selling point. Ещё одна главная selling point - auto-everything; нулевая необходимость в настройке (выборе количества машин, шардинге, упаси боже каких-нибудь размеров буферов, и пр.)

Пока что проект в режиме private beta. Через какое-то время будет limited preview, через какое - не могу сказать.
Previous post Next post
Up