Google cloud platform 通过谷歌云数据流创建/写入分片(注明日期)的BigQuery表

Google cloud platform 通过谷歌云数据流创建/写入分片(注明日期)的BigQuery表,google-cloud-platform,google-cloud-dataflow,apache-beam-io,Google Cloud Platform,Google Cloud Dataflow,Apache Beam Io,是否有一个简单易懂的示例,说明如何配置流模式数据流管道,将每个窗口写入一个单独的BigQuery表(并在必要时创建一个) 即-表_20160701、表_20160702等样本代码: ` PCollection引号= quotes.apply(Window.into(CalendarWindows.days(1))) .apply(BigQueryIO.Write .命名(“写”) .withSchema(schema) .to(新的SerializableFunction(){ 公共字符串应用(

是否有一个简单易懂的示例,说明如何配置流模式数据流管道,将每个窗口写入一个单独的BigQuery表(并在必要时创建一个)

即-表_20160701、表_20160702等样本代码:

`

PCollection引号=
quotes.apply(Window.into(CalendarWindows.days(1)))
.apply(BigQueryIO.Write
.命名(“写”)
.withSchema(schema)
.to(新的SerializableFunction(){
公共字符串应用(BoundedWindow){
//下面的强制转换是安全的,因为CalendarWindows.days(1)生成间隔窗口。
String dayString=DateTimeFormat.forPattern(“yyyy\u MM\u dd”)
.withZone(DateTimeZone.UTC)
.print(((IntervalWindow)窗口).start());
返回“我的项目:output.output\u table\uuuu”+dayString;
}
}));
}
`

摘自这里:

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;
            }
          }));
  }