我不确定为什么媒体普遍表示谷歌的TrueTime API难以复制(有线,Slashdot等).
我可以理解如何获得谷歌实现的低错误间隔是一件困难的事情,但我不知道API本身将如何变得非常困难.
例如,我掀起了一个黑客攻击版本.这是间隔.
typedef struct TT_interval {
struct timeval earliest;
struct timeval latest;
} TT_interval;
Run Code Online (Sandbox Code Playgroud)
这是现在的功能.
int TT_now(TT_interval* interval)
{
struct ntptimeval tv;
struct timeval delta;
struct timeval* earliest_p = &(interval->earliest);
struct timeval* latest_p = &(interval->latest);
struct timeval* now_p = &(tv.time);
struct timeval* delta_p = δ
timerclear(&delta);
timerclear(&interval->earliest);
timerclear(&interval->latest);
if(ntp_gettime(&tv) == 0) {
tv.maxerror = tv.maxerror > 0 ? tv.maxerror : -(tv.maxerror);
delta.tv_sec = delta.tv_sec + (tv.maxerror / 1000);
delta.tv_usec = delta.tv_usec + ((tv.maxerror % 1000) * 1000);
if(delta.tv_usec …Run Code Online (Sandbox Code Playgroud) c time distributed-computing google-cloud-platform google-cloud-spanner
我在Spanner中有以下查询优化问题,并希望有一个我缺少的技巧,这将帮助我将查询规划器弯曲到我的意愿.
这是简化的架构:
create table T0 (
key0 int64 not null,
value int64,
other int64 not null,
) primary key (key0);
create table T1 {
key1 int64 not null,
other int64 not null
} primary key (key1);
Run Code Online (Sandbox Code Playgroud)
并在IN子句中使用子查询进行查询:
select value from T0 t0
where t0.other in (
select t1.other from T1 t1 where t1.key1 in (42, 43, 44) -- note: this subquery is a good deal more complex than this
)
Run Code Online (Sandbox Code Playgroud)
通过T0的散列连接与子查询的输出生成10个元素集:
Operator Rows Executions
----------------------- ----- ----------
Serialize …Run Code Online (Sandbox Code Playgroud) gcloud auth print-access-token给我一个Bearer令牌,以后可以使用;但是,这是一个shell命令。如何通过Google Cloud Python API以编程方式获取一个?
我看到了使用oauth2client的先前示例,但现在已弃用。如何使用google.auth和oauthlib做到这一点?oauth2client
我正在尝试评估是否可以在 HBase 或 Bigtable 中的单个行上设置 TTL。
我知道 Cassandra 允许在插入时使用 TTL。我想知道 HBase 和 Google Cloud Bigtable 中是否可以实现同样的功能。
INSERT INTO test (k,v) VALUES ('test', 1) USING TTL 10;
Run Code Online (Sandbox Code Playgroud) hbase bigtable ttl google-cloud-platform google-cloud-bigtable
我有一个条纹Webhook,它调用Firebase函数。在此功能中,我需要验证此请求是否来自Stripe服务器。这是代码:
const functions = require('firebase-functions');
const bodyParser = require('body-parser');
const stripe = require("stripe")("sk_test_****");
const endpointSecret = 'whsec_****';
const app = require('express')();
app.use(bodyParser.json({
verify: function (req, res, buf) {
var url = req.originalUrl;
if (url.startsWith('/webhook')) {
req.rawBody = buf.toString()
}
}
}));
app.post('/webhook/example', (req, res) => {
let sig = req.headers["stripe-signature"];
try {
console.log(req.bodyRaw)
let event = stripe.webhooks.constructEvent(req.body, sig, endpointSecret);
console.log(event);
res.status(200).end()
// Do something with event
}
catch (err) {
console.log(err);
res.status(400).end()
}
});
exports.app = functions.https.onRequest(app);
Run Code Online (Sandbox Code Playgroud)
如Stripe文档中所述,我必须使用原始主体来执行此安全检查。 …
stripe-payments google-cloud-platform google-cloud-functions
我正在尝试在现有 VM 实例上启用嵌套虚拟化。VM 位于 Intel Haswell CPU 平台上,因此可以实现嵌套虚拟化。
现在我在谷歌阅读了这篇支持文章:https : //cloud.google.com/compute/docs/instances/enable-nested-virtualization-vm-instances
在第一部分在实例上启用嵌套虚拟化它说如下:
从公共映像或具有操作系统的自定义映像创建启动磁盘。或者,您可以跳过此步骤并将许可证应用到您的一个 VM 实例中的现有磁盘。
但是我不知道如何将嵌套虚拟化许可证应用于现有的 VM 实例。描述的唯一步骤适用于新磁盘,我想将其应用于现有磁盘。
我的问题是:如何在现有的 Google Cloud 实例上启用嵌套虚拟化?
提前致谢,雨果。
我已经阅读了有关该gsutil cp命令的文档,但仍然不明白如何复制文件夹以保持相同的权限。我试过这个命令:
gsutil cp gs://bucket-name/folder1/folder_to_copy gs://bucket-name/folder1/new_folder
Run Code Online (Sandbox Code Playgroud)
但它导致错误:
CommandException: No URLs matched
Run Code Online (Sandbox Code Playgroud)
虽然,当我在每个名称的末尾使用斜杠尝试它时,它没有显示任何错误:
gsutil cp gs://bucket-name/folder1/folder_to_copy/ gs://bucket-name/folder1/new_folder/
Run Code Online (Sandbox Code Playgroud)
但是,当我检查gsutil ls. 我究竟做错了什么?
由于spanner没有像这样的ddl功能
插入到 dest as (select * from source_table)
我们如何选择表的子集并将这些行复制到另一个表中?
我正在尝试将数据写入临时表,然后在一天结束时将数据移至存档表。但到目前为止我能找到的唯一解决方案是,从源表中选择行并将它们写入新表。这是使用 java api 完成的,并且它没有 ResultSet 到 Mutation 转换器,所以我需要将表的每一列映射到新表,即使它们完全相同。
另一件事是只更新一列数据,就像无法执行“update table_name set column=column-1”
再次要做到这一点,我需要读取该行并映射每个字段来更新 Mutation,但是如果有很多表,这没有用,我需要为所有表编写代码,转换的 ResultSet -> Mutation 也很好。
是否有任何通用的突变克隆器和/或任何其他方式在表之间复制数据?
我们想要将多个文件上传到 Google Cloud Storage。目前,我们正在使用 Google Java API 进行一一上传。代码如下:
public void uploadFile(File srcFile,String bucketName, String destPath) throws IOException {
BlobId blobId = BlobId.of(bucketName, srcFile.getName());
BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build();
long startTime = System.currentTimeMillis();
// Blob blob = storage.create(blobInfo,new FileInputStream(srcFile));
try (WriteChannel writer = storage.writer(blobInfo)) {
try (FileInputStream in = new FileInputStream(srcFile)){
byte[] buffer = new byte[1024 * 1024 * 100] ;
writer.setChunkSize(buffer.length);
int readSize = 0;
while((readSize = in.read(buffer)) > 0) {
writer.write(ByteBuffer.wrap(buffer, 0, readSize));
}
long endTime = System.currentTimeMillis();
double writeTime …Run Code Online (Sandbox Code Playgroud) 我尝试为Dataflow设置控制器服务帐户。在我的数据流选项中,我有:
options.setGcpCredential(GoogleCredentials.fromStream(new FileInputStream("key.json")).createScoped(someArrays));
options.setServiceAccount("xxx@yyy.iam.gserviceaccount.com");
Run Code Online (Sandbox Code Playgroud)
但我得到:
WARNING: Request failed with code 403, performed 0 retries due to IOExceptions, performed 0 retries due to unsuccessful status codes, HTTP framework says request can be retried, (caller responsible for retrying): https://dataflow.googleapis.com/v1b3/projects/MYPROJECT/locations/MYLOCATION/jobs
Exception in thread "main" java.lang.RuntimeException: Failed to create a workflow job: (CODE): Current user cannot act as service account "xxx@yyy.iam.gserviceaccount.com. Causes: (CODE): Current user cannot act as service account "xxx@yyy.iam.gserviceaccount.com.
at org.apache.beam.runners.dataflow.DataflowRunner.run(DataflowRunner.java:791)
at org.apache.beam.runners.dataflow.DataflowRunner.run(DataflowRunner.java:173)
at org.apache.beam.sdk.Pipeline.run(Pipeline.java:311)
at org.apache.beam.sdk.Pipeline.run(Pipeline.java:297)
Run Code Online (Sandbox Code Playgroud)
...
Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 …Run Code Online (Sandbox Code Playgroud) dataflow google-cloud-platform google-cloud-dataflow google-cloud-iam