go - 将行写入 Cloud Bigtable 时出现客户端错误

标签 go google-cloud-platform google-cloud-bigtable

我正在尝试使用适用于 Bigtable 的 Go SDK 向 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
}

谁能帮我理解这个问题?

最佳答案

这似乎是一个 gRPC 错误。

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

您可以测试使用提到的 here将 Bigtable 与您自己的 gRPC conn 结合使用.

关于go - 将行写入 Cloud Bigtable 时出现客户端错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56236306/

相关文章:

google-cloud-platform - 从我的 Google 存储桶下载对象会产生费用吗?

java - sbt assembly fat JAR 的 Bigtable 错误(Jetty ALPN 和 OpenSSL 都不可用)

testing - 哪个目录放模拟?

json - 向不同系统发送 MongoDB 查询 : converting to JSON and then decoding into BSON? Go 语言如何实现?

email - 从 Go 发送带有 "Name"<email> 的电子邮件

python - 我的默认应用程序是否必须部署到 appspot.com?

arrays - 避免在输入中使用空格

google-cloud-platform - Google Cloud SDK 抛出 Reachability Check failed 错误

high-availability - Google Cloud Bigtable 持久性/可用性保证

java - ClassNotFoundException : io. grpc.internal.BaseDnsNameResolverProvider 尝试从 Windows 创建 BigtableDataClient 时