问题标签 [google-cloud-spanner]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
653 浏览

google-cloud-platform - 未找到 Google Cloud Spanner 会话

1 或 2 小时后调用我的扳手开发实例时出现错误。无需通话。

我安装了当前的扳手 node.js 客户端和最新的 grpc 包。是否需要通过保持活动呼叫保持连接打开?

谢谢

0 投票
1 回答
1713 浏览

java - 如何在 Cloud Spanner Java API 中绑定 IN 参数

是否可以使用 Google Cloud Spanner Java SDK 绑定到提供给查询 IN 部分的参数?

例如

如果我们使用 toStringArray 绑定名称,则会出错。如果我们设置以下内容:

那么生成的SQL是:

  • 注意额外的引号。知道我们如何在没有%s 字符串替换的情况下做到这一点以避免注入攻击吗?
0 投票
2 回答
665 浏览

google-cloud-platform - Google Spanner 一次往返中的多个查询

是否可以在往返途中对 Google Spanner 执行多个查询?

例如,我想在一次往返中运行以下两个查询:(出于性能问题)

0 投票
1 回答
313 浏览

sql - Google Cloud Spanner Pivot/Coalesce/wide table 能力?

假设我有以下表格:

父母

孩子们

如果父母有很多孩子,是否可以旋转父母表以引入所有孩子的名字,如下所示:

和/或查询所有有一个孩子叫“奥斯卡”或一个孩子叫“戴维”的父母?

在 Oracle/其他 SQL 引擎中,我们可以使用一个PIVOT或可能的COALESCE函数,但在 Spanner 中这些都丢失了,并且无法查看这种类型的查询/输出是否可能?

0 投票
1 回答
255 浏览

database - 是否应该针对每个请求创建一个新的 Cloud Spanner 客户端实例?

Google 的 Go 官方 Cloud Spanner 客户端库有一个NewClient()函数,它接受Context. 通常,Contexts 作为(可能长时间运行的)请求链的一部分传递。这是否意味着要NewClient()为需要访问 Cloud Spanner 的服务处理的每个唯一请求调用它?

如果我使用的是传统的关系数据库,我会创建一个共享的客户端池,供进程多次使用,以减少资源使用(例如网络连接)。每当请求处理程序启动时创建一个独特的数据库客户端的想法对我来说有点令人反感,我想知道我是否误解了客户端库的预期用途。

另一方面,Cloud Spanner总的来说相当神奇,所以得知这实际上是一种受鼓励且有效的模式,我不会感到太惊讶。不过,很高兴知道,文档并没有真正讨论它。

0 投票
2 回答
1791 浏览

java - Google-Cloud:Jetty ALPN/NPN 未正确配置

使用 Google Pubsub 列出主题时出现异常,我的 Web 应用程序在 tomcat 上运行。

例外:

java.lang.IllegalArgumentException:Jetty ALPN/NPN 未正确配置。
在 io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:174) 在 io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:151) 在 io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:139) ) at io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:109) at io.grpc.netty.NettyChannelBuilder.createProtocolNegotiatorByType(NettyChannelBuilder.java:335) at io.grpc.netty.NettyChannelBuilder.createProtocolNegotiator(NettyChannelBuilder.java: 308)在io.grpc.netty.NettyChannelBuilder$NettyTransportFactory.newClientTransport(NettyChannelBuilder.java:448)在io.grpc.internal.CallCredentialsApplyingTransportFactory的io.grpc.netty.NettyChannelBuilder$NettyTransportFactory$DynamicNettyTransportParams.getProtocolNegotiator(NettyChannelBuilder.java:499) .newClientTransport(CallCredentialsApplyingTransportFactory.java:61) at io.grpc.internal.InternalSubchannel.startNewTransport(InternalSubchannel.java:209) at io.grpc.internal.InternalSubchannel.obtainActiveTransport(InternalSubchannel.java:186) at io.grpc.internal.ManagedChannelImpl $SubchannelImplImpl.obtainActiveTransport(ManagedChannelImpl.java:806) 在 io.grpc.internal.GrpcUtil.getTransportFromPickResult(GrpcUtil.java:568) 在 io.grpc.internal.DelayedClientTransport.reprocess(DelayedClientTransport.java:296) 在 io.grpc。 internal.ManagedChannelImpl$LbHelperImpl$5.run(ManagedChannelImpl.java:724) at io.grpc.internal.ChannelExecutor.drain(ChannelExecutor.java:87) at io.grpc.internal.ManagedChannelImpl$LbHelperImpl.runSerialized(ManagedChannelImpl.java:715 ) 在 io.grpc.internal。ManagedChannelImpl$NameResolverListenerImpl.onUpdate(ManagedChannelImpl.java:752) at io.grpc.internal.DnsNameResolver$1.run(DnsNameResolver.java:174) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java。 util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)

0 投票
1 回答
992 浏览

google-cloud-platform - 列的值无效:预期为 INT64

表“mytable”只有一列名为“mycolumn”,类型为 INT64。当我发送以下请求时,它总是失败并显示错误“表 mytable 中列 mycolumn 的值无效:预期的 INT64。”。我尽力了,但找不到失败的原因。有人可以帮我指出这个请求的问题吗?

0 投票
2 回答
738 浏览

google-cloud-platform - Google Cloud Spanner 是否支持 VIEWS

在 Cloud Spanner 文档中找不到它,使用过它的人是否知道它是否支持 SQL 视图?

0 投票
1 回答
397 浏览

google-cloud-platform - Google Cloud Spanner 是否支持压缩?

我们的数据集具有相对于相邻行高度可压缩的行。据我了解,Bigtable 支持自动压缩(通过 SSTable 块压缩)。如果 Spanner 能够或将支持数据库级别的类似压缩,这将对我们产生巨大的影响。我们预计这会使我们的成本结构产生 3-5 倍的差异。虽然我们可以考虑在应用层尝试这样做,但这一点也不好玩……

0 投票
0 回答
647 浏览

c# - 使用 .NET Nuget 包对 Spanner 运行大型查询的 TaskCanceledException

运行一个简单的查询,比如对一个小表进行选择,然后我得到结果;使用更复杂的查询执行相同的代码,它会因任务取消异常而出错。

通过 lib 进行调试的更多信息 - 看起来套接字在仍在使用时被释放,并且访问它导致任务被取消:

System.ObjectDisposedException 发生消息:抛出异常:System.dll 中的“System.ObjectDisposedException”附加信息:无法访问已处置的对象。

System.IO.IOException 发生消息:抛出异常:System.dll 中的“System.IO.IOException”附加信息:无法从传输连接读取数据:无法访问已处置的对象。对象名称:'System.Net.Sockets.Socket'..

从客户端代码调试:

一个任务被取消了。{“ClassName”:“System.Threading.Tasks.TaskCanceledException”,“Message”:“任务已取消。”,“Data”:null,“InnerException”:null,“HelpURL”:null,“StackTraceString”:“在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n 在 Google.Apis.Requests.ClientServiceRequest 1.d__27.MoveNext( )\r\n--- 从先前引发异常的位置结束堆栈跟踪 ---\r\n 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n1.<ExecuteUnparsedAsync>d__30.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Google.Apis.Requests.ClientServiceRequest

在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)\r\n 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n 在 Google.Apis.Requests.ClientServiceRequest 1.GetResult()\ r\n 在 C:\Users\Dave\Documents\Visual Studio 2015\Projects\SpannerConsoleApp\SpannerConsoleApp\Program.cs:line 257 中的 Discovery.ListAPIs.Program.d__10.MoveNext() 处", "RemoteStackTraceString": null, " RemoteStackIndex”:0, “ExceptionMethod”:“8\nThrowForNonSuccess\nmscorlib,版本=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089\nSystem.Runtime.CompilerServices.TaskAwaiter\nVoid ThrowForNonSuccess(System.Threading.Tasks.Task)” ,“HResult”:-2146233029,“来源”:“mscorlib", "WatsonBuckets": null }---1.<ExecuteAsync>d__26.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter