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

我已将数据从数据存储导出到云存储,并将其加载到BigQuery。如果我更改了架构的顺序,它会影响数据吗?

下表如下:

http://img.mukewang.com/62fa05bf0001a88315470639.jpg

用于更新架构的代码:


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

}


POPMUISE
浏览 126回答 1
1回答

LEATH

现有 BigQuery 表支持的唯一修改是:向架构定义中添加列将列的模式从 放宽为REQUIREDNULLABLE请参阅 https://cloud.google.com/bigquery/docs/managing-table-schemas。如果要在这两个操作的范围之外执行架构更改,则可能必须采用其他方法。请考虑将数据迁移到具有新架构的新表中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go