以编程方式在BigQuery中的数据集中创建表

时间:2017-08-05 20:14:52

标签: java api google-bigquery

是否可以使用Java中的API在BigQuery中的数据集中创建表?

我知道这是可能的
bq mk --schema <fileName> -t <project>:<dataset>.<table> 

但我找不到以编程方式执行此操作的方法。

1 个答案:

答案 0 :(得分:3)

我没有亲自使用Java BigQuery库 1 ,但看起来你应该调用BigQuery.create(TableInfo, TableOptions[]。该文档具有此示例代码 - 假设您当前已经有一个BigQuery接口实现的实例:

String datasetName = "my_dataset_name";
String tableName = "my_table_name";
String fieldName = "string_field";
TableId tableId = TableId.of(datasetName, tableName);
// Table field definition
Field field = Field.of(fieldName, Field.Type.string());
// Table schema definition
Schema schema = Schema.of(field);
TableDefinition tableDefinition = StandardTableDefinition.of(schema);
TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build();
Table table = bigquery.create(tableInfo);

显然,对于真实的表,您的架构构造可能会更复杂一些,但这应该可以帮助您入门。我看不到从文件加载模式的任何方法,但如果您的模式文件以简单的方式(例如JSON)是机器可读的,您可以相当容易地编写自己的解析器。 (如果你愿意,可以将它贡献给项目......)

1 我是C#BigQuery库的主要作者,所以我知道要寻找什么。