Eugene Kirpichov (antilamer) wrote,
Eugene Kirpichov
antilamer

Google Cloud Dataflow

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

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

PCollection<Tweet> 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, через какое - не могу сказать.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 10 comments