为了账号安全,请及时绑定邮箱和手机立即绑定

BigQuery 更改架构会影响数据吗?

BigQuery 更改架构会影响数据吗?

Go
POPMUISE 2022-08-15 16:36:54
我已将数据从数据存储导出到云存储,并将其加载到BigQuery。如果我更改了架构的顺序,它会影响数据吗?下表如下:用于更新架构的代码:func updateSchema(projectID, datasetID, tableID string) error {    projectID := "my-project-id"    datasetID := "mydataset"    tableID := "mytable"    ctx := context.Background()    client, err := bigquery.NewClient(ctx, projectID)    if err != nil {        return fmt.Errorf("bigquery.NewClient: %v", err)    }    defer client.Close()    tableRef := client.Dataset(datasetID).Table(tableID)    meta, err := tableRef.Metadata(ctx)    if err != nil {        return err    }    newSchema := bigquery.Schema{        {Name: "settlement", Type: bigquery.StringFieldType },        {Name: "dismissal_id", Type: bigquery.IntegerFieldType },        {Name: "brand_safe_flag", Type: bigquery.BooleanFieldType },        {Name: "net_cv_cost", Type: bigquery.StringFieldType },        {Name: "gross_cv_cost", Type: bigquery.StringFieldType },        {Name: "non_achievement_message", Type: bigquery.StringFieldType },        {Name: "partner_id", Type: bigquery.IntegerFieldType },        {Name: "click_url", Type: bigquery.RecordFieldType, Schema: bigquery.Schema{            {Name: "string", Type: bigquery.StringFieldType},            {Name: "text", Type: bigquery.StringFieldType},            {Name: "provided", Type: bigquery.StringFieldType},        }},    }    update := bigquery.TableMetadataToUpdate{        Schema: newSchema,    }    if _, err := tableRef.Update(ctx, update, meta.ETag); err != nil {        return err    }    return nil}
查看完整描述

1 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

现有 BigQuery 表支持的唯一修改是:

  • 向架构定义中添加列

  • 将列的模式从 放宽为REQUIREDNULLABLE

请参阅 https://cloud.google.com/bigquery/docs/managing-table-schemas。如果要在这两个操作的范围之外执行架构更改,则可能必须采用其他方法。请考虑将数据迁移到具有新架构的新表中。


查看完整回答
反对 回复 2022-08-15
  • 1 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号