1

我正在尝试使用 Go SDK for Bigtable 将一行写入 Bigtable 表。我在表对象上使用 apply 方法。

当我尝试多次写入时收到以下错误:

rpc error: code = Canceled desc = grpc: the client connection is closing

以下是我的代码:

func Put(tableName string, columnFamilyName string, rowKey string, attrMap map[string]interface{}) error {

    tbl := BigTableClient.Open(tableName)
    mut := bigtable.NewMutation()

    for key, val := range attrMap {
        if utils.IsJSON(val.(string)) {
            v, _ := json.Marshal(val)
            mut.Set(columnFamilyName, key, bigtable.Now(), []byte(v))
        } else {
            v := val.(string)
            mut.Set(columnFamilyName, key, bigtable.Now(), []byte(v))
        }
    }
    err := tbl.Apply(BigTableContext, rowKey, mut)
    if err != nil {
        errMsg := "Error while writing to BT: " + err.Error()
        logger.LogError(errMsg)
    }
    return err
}

有人可以帮我理解这个问题吗?

4

1 回答 1

1

这似乎是一个 gRPC 错误。

也许您的网络延迟会导致 gRPC 错误。

您可以使用 Bigtable 和您自己的gRPC conn进行测试,如此处所述。

于 2019-05-22T12:34:20.157 回答