Создание / запись в закаленную (устаревшую) таблицу BigQuery с помощью облачного потока данных Google

Существует ли простой в использовании пример, как настроить потоковый режим Dataflow Pipeline, чтобы записать каждое окно в отдельную таблицу BigQuery (и при необходимости создать ее)?

Т.е. - таблица_20160701, таблица_20160702 и т. Д.

1 ответ

Решение

Образец кода:

`

PCollection<TableRow> quotes = 
  quotes.apply(Window.<TableRow>into(CalendarWindows.days(1)))
        .apply(BigQueryIO.Write
          .named("Write")
          .withSchema(schema)
          .to(new SerializableFunction<BoundedWindow, String>() {
            public String apply(BoundedWindow window) {
              // The cast below is safe because CalendarWindows.days(1) produces IntervalWindows.
              String dayString = DateTimeFormat.forPattern("yyyy_MM_dd")
                   .withZone(DateTimeZone.UTC)
                   .print(((IntervalWindow) window).start());
              return "my-project:output.output_table_" + dayString;
            }
          }));
  }

`

Взяты отсюда:

https://github.com/GoogleCloudPlatform/DataflowJavaSDK/blob/master/sdk/src/main/java/com/google/cloud/dataflow/sdk/io/BigQueryIO.java

Другие вопросы по тегам