我想创建一个表,然后使用云函数写入BigQuery,但我不想复制表中的数据,所以我首先删除了表,然后在每次调用该函数时创建表.

    public static void runCreateTable() {
        Schema schema =
                Schema.of(
                        Field.of("id", StandardSQLTypeName.INT64),
                        Field.of("name", StandardSQLTypeName.STRING));
        createTable(DATASET, TABLE_NAME, schema);
    }
public static void createTable(String datasetName, String tableName, Schema schema) {
        try {
            BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
            TableId tableId = TableId.of(datasetName, tableName);
            TableDefinition tableDefinition = StandardTableDefinition.of(schema);
            TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build();
            bigquery.create(tableInfo);
            System.out.println("Table created successfully");
        } catch (BigQueryException e) {
            System.out.println("Table was not created. \n" + e.toString());
        }
    }
BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

            if (bigquery.getTable(TableId.of(DATASET, TABLE_NAME)).delete()) {
                runCreateTable();
                TableRow row = new TableRow();

                for (Map.Entry<String, Object> entry : campaign.entrySet()) {
                    row.set("id", entry.getKey()).set("name", entry.getValue());
                    bigquery.insertAll(InsertAllRequest.newBuilder(bigquery.getTable(TableId.of(DATASET, TABLE_NAME))).addRow(row).build());
                }
            }

100

推荐答案

我建议您避免重新创建表格,而可以删除其内容:

DELETE FROM TABLE_NAME WHERE 1=1

此外,您还可以判断以下答案:

"Not found: Table" for new bigquery table

Java相关问答推荐

我可以在regex中的字符类中放置断言吗?

inteliJ中是否有一个功能可以自动在块注释中的/*后面添加一个空格?''

@ IdClass with @ Inheritance(策略= InheritanceType. SINGLE_TABLE)

Java 21 struct 化连接货币,需要可预知的子任务异常排序

如何在ApachePOI中将图像添加到工作表的页眉?

如何让DTO接受空字符串字段,但如果它们不为空,则应用JPA验证?

在Spring Boot应用程序中导致";MediaTypeNotSupportdException&qot;的映像上载

如何使用带有谓词参数的方法,而不使用lambda表达式

与不同顺序的组进行匹配,不重复组但分开

使用Jolt将字段转换为列表

Java中将文本拆分为数字或十进制数字和字符串

try 从REST API返回对象列表时出错

如何使用路径过渡方法使 node 绕圆旋转?

Spring Boot&;Docker:无法执行目标org.springframework.boot:spring-boot-maven-plugin:3.2.0:build-image

如何在JUNIT测试中覆盖ExecutorService?

如何对存储为字符串的大数字数组进行排序?

无限递归Java问题

在Spring Boot中使用咖啡因进行缓存-根据输出控制缓存

AspectJ编织外部依赖代码,重新打包jar并强制依赖用户使用它

为什么当我输入变量而不是直接输入字符串时,我的方法不起作用?