Google cloud platform 通过谷歌云数据流创建/写入分片(注明日期)的BigQuery表
是否有一个简单易懂的示例,说明如何配置流模式数据流管道,将每个窗口写入一个单独的BigQuery表(并在必要时创建一个) 即-表_20160701、表_20160702等样本代码: `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(){ 公共字符串应用(
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;
}
}));
}