小编sea*_*ain的帖子

使用brew升级Mongo更新从3.4到4.0错误:在尝试升级到4.0之前,需要将数据文件完全升级到3.6版

mongod
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

**重要提示:升级问题:在尝试升级到4.0之前,需要将数据文件完全升级到3.6版; 有关详细信息,请参阅http://dochub.mongodb.org/core/4.0-upgrade-fcv.

但是,如果我使用

brew services start mongodb
Run Code Online (Sandbox Code Playgroud)

那么mongo服务器就可以启动了.

修复mongod错误

我发现了类似的错误线程

将Mongodb从3.2升级到3.6时出错

所以我降级到mongodb 3.6,然后运行

db.adminCommand( { setFeatureCompatibilityVersion: "3.6" } )
Run Code Online (Sandbox Code Playgroud)

然后重新安装mongodb 4.0,我运行时仍然有同样的错误

mongodb
Run Code Online (Sandbox Code Playgroud)

我还是要用

brew services start mongodb
Run Code Online (Sandbox Code Playgroud)

启动mongodb

在命令行中,我运行

> db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
{ "featureCompatibilityVersion" : { "version" : "3.6" }, "ok" : 1 }
> 
Run Code Online (Sandbox Code Playgroud)

它说featureCompatibilityVersion是3.6

还有什么我需要做的才能满足"数据文件需要完全升级到3.6版"?

谢谢!

mongodb

16
推荐指数
1
解决办法
1万
查看次数

Google BigQuery没有主键或唯一约束,如何防止重复记录被插入?

Google BigQuery没有主键或唯一约束.

我们不能使用传统的SQL选项,例如,insert ignore或者insert on duplicate key update如何防止将重复记录插入到Google BigQuery中?

如果我必须首先调用delete(基于我自己系统中的唯一键),然后插入以防止重复记录被插入bigquery,那不会太低效吗?我认为插入是最便宜的操作,没有查询,只是附加数据.对于每个插入,如果我必须调用删除,它将是太低效并且花费我们额外的钱.

根据您的经验,您有什么建议和建议?

bigquery有主键会很好,但它可能与bigquery基于的算法/数据结构冲突?

google-bigquery

10
推荐指数
2
解决办法
1万
查看次数

HTTP Google Cloud Functions中的身份验证

https://cloud.google.com/solutions/authentication-in-http-cloud-functions

该文档建议设置Google云端存储分区.然后将服务帐户的权限"storage.buckets.get"设置为存储桶.

然后使用此权限验证对http Google Cloud Functions的访问权限.

我们正在讨论验证http云功能,但我们正在借用Google云端存储的许可.在我看来,这是一个黑客解决方案.

如果我们只需通过Google Cloud Console在每个云功能上设置权限,那就太棒了.

您是否在上述文档中使用Google建议的身份验证解决方案?或者你有更好的方法?

要设置""storage.buckets.get",这是否意味着我授予服务帐户"存储对象查看器"权限?

在此输入图像描述

google-cloud-platform google-cloud-functions

10
推荐指数
1
解决办法
7709
查看次数

如果我在流式传输之前先删除表并创建表,Google BigQuery Streaming 有时会失败

我正在将数据流式传输到 BigQuery 表中。

  • 删除旧表
  • 创建一个具有相同名称和相同架构的新表
  • 将数据流式传输到新表中

我以前做过很多次,它工作得很好。但最近我开始发现上述方法不起作用。

流式传输完成后(未报告错误),我查询表,有时它会起作用。有时,我的桌子是空的。(相同的脚本,相同的数据,多次运行,结果不同。有时有效,有时无效。)

更神秘的是,当我流式传输大量数据时,它似乎在大多数情况下都有效。但是当我流式传输少量数据时,它大部分时间都失败了。

但如果我只是这样做

  • 创建一个新表
  • 将数据流式传输到新表中

它总是有效。

我在 Google Apps Scrip 和 PHP Google Cloud Client Library for BigQuery 中都尝试了这个。我有同样的问题。

所以我在 Google Apps Script 中尝试了这个

  • 删除旧表
  • 休眠 10 秒,因此应该完成删除工作
  • 创建一个具有相同名称和相同架构的新表
  • 睡眠 10 秒,所以创建工作应该完成
  • 将数据流式传输到新表中

它仍然给我同样的问题。

但是没有报告或记录错误。

附加信息:

我又试了一次。

如果我等到流缓冲区为空,然后运行脚本。结果总是正确的。新数据成功流入新表。

但是,如果我在上次运行之后立即运行该脚本,则结果为空。数据不会流入新表。

因此,当流缓冲区不为空时,当我“删除旧表并创建新表”时,似乎会发生错误。

但是根据this thread的回答,BigQuery Stream and Delete while streaming buffer is not empty?,

旧表和新表(即使它们具有相同的名称和相同的架构),它们具有两个不同的“对象ID”。它们实际上是两个不同的表。删除旧表后,流缓冲区中的旧记录也会被删除。流缓冲区是否为空,它应该不会影响我接下来的步骤,创建一个新表并将新数据流式传输到新表。

另一方面,如果我尝试“截断旧表”,而不是“删除旧表并创建新表”,而流缓冲区中可能仍有数据,则“DML 语句无法修改仍在流缓冲区中的数据” ,所以“截断旧表”会失败。

简单来说,在这个用例中,

  • 我无法截断旧表,因为 Steam 缓冲区可能不为空。
  • 我应该“删除旧表并创建新表,然后将数据流式传输到新表”。但这似乎是我当前问题的根源,我的新数据无法流式传输到新表(即使新表具有新的对象ID,也不应该受到我只是删除旧表这一事实的影响)

streaming google-bigquery

9
推荐指数
1
解决办法
849
查看次数

conda install -c conda-forge tensorflow 刚刚陷入求解环境

我正在尝试在 MacOS 中运行此语句。

conda install -c conda-forge tensorflow
Run Code Online (Sandbox Code Playgroud)

它只是卡在

Solving Environment: 
Run Code Online (Sandbox Code Playgroud)

永远不要完成。

$ conda --version
conda 4.5.12
Run Code Online (Sandbox Code Playgroud)

conda tensorflow

8
推荐指数
1
解决办法
1万
查看次数

如何使用bigquery向上舍入小数点后的4位数?

我们现在没有BigQuery中的十进制数据类型.所以我必须使用float

在Bigquery浮动师

0.029*百分之五十零= 0.014500000000000002

虽然

0.021*百分之五十零= 0.0105

将值向上舍入

我必须使用round(floatvalue*10000)/ 10000.

这是在BigQuery中处理十进制数据类型的正确方法吗?

google-bigquery

6
推荐指数
2
解决办法
9505
查看次数

如何调整 Elasticsearch 以使其快速索引?

我的 ElasticSearch 不会做一些复杂的查询。我使用 ElasticSearch 只是为了在大型数据集上实现快速搜索性能。

它运行良好。搜索简单快捷。

但是随着索引中的文档变得庞大,添加新文档变得越来越慢。

  • 当索引的大小较小时,添加/索引 100 万个文档大约需要 250 秒。
  • 但是当同一个索引的大小达到 50GB 左右时,添加 100 万个文档大约需要 1000 秒。
  • 当同一索引的大小达到 100 GB 时,添加 100 万个文档需要更长的时间。
  • 有时在索引100万个文档的过程中,我可以看到弹性搜索连接错误,错误来自代码行附近的代码。“//<2.0”我刚刚炸毁了“非结构化异常”。当我尝试将 100 万个文档索引到一个大索引(大约 100 GB)时,我只看到这个错误。当索引大小较小时,我在日志中没有看到这个错误。

我想调整 ElasticSearch 集群以使其仍然快速返回搜索结果,但我也希望它能够快速索引/添加文档,即使索引达到 100 GB 或更大的大小。

我会

  • 在一个集群中使用 3 个节点(我没有找到关于集群中节点数量的好答案,所以正如一些文章所建议的那样,三个似乎是一个不错的数字)
  • 我会为每个索引使用 5 个分片 1 个副本。(我也没有找到好的号码,这是现在的默认号码)
  • 现在,我在一个集群上有 5 - 10 个索引,集群大小为 1000 GB(使用了 300 GB)。不是在 1000 GB 集群上运行 10 个索引,如果我运行一个索引一个集群(集群大小 200 GB),在索引和搜索方面的性能会更好吗?
  • 我添加到索引中的文档是汇总的投影数据。文档的字段数从6到12等等。我把大部分字段做成关键字数据类型,如果我做的字段少一些,比如只有一半的字段关键字,我能提高多少索引文件的速度?(在我的例子中,索引大小达到 100 GB,每天我批量索引/向索引添加 100 万个文档。

那么我可以对上面的设置做哪些改变来提高索引速度和性能,并减少过程中像Elasticsearch连接错误这样的错误?

我正在使用 AWS 托管的 Elasticsearch。

我还能做什么?

谢谢!

elasticsearch

6
推荐指数
1
解决办法
2516
查看次数

Google Cloud 函数和服务帐户

我想使用 Google Cloud Functions 访问 Youtube Content Owner API。为此,GCF 使用的服务帐户必须有权访问该 API。

当我创建 Google Cloud Function 时,它会自动分配一个服务帐户。在本例中为“App Engine 默认服务帐户”。我对此有几个问题。

  1. Google Cloud Function 是否始终使用“App Engine 默认服务帐户”作为服务帐户?
  2. 在编辑云函数时,我看不到任何更改 Google 云函数服务帐户的方法。Cloud Function 一旦设置好,服务账号就不能更改了,对吧?
  3. 如果默认服务帐户可以访问 Youtube Content Owner API,那么 Google Cloud Functions 也会拥有它吗?

youtube-api service-accounts google-cloud-platform google-cloud-functions

5
推荐指数
1
解决办法
3293
查看次数

Google DataStudio 无法从 URL 获取参数,但我可以使用 Google Apps 脚本 Google Data Studio 数据连接器来传递参数值吗?

我有一个 Google DataStudio 报告,带有“帐户 ID 过滤器”,例如我可能有 100 个客户帐户。

我想与这 100 个帐户分享这份报告。但每个帐户只能看到自己的报告。

但 Google DataStudio 不会从 url 获取参数,因此我无法将帐户 ID 值传递到 DataStudio 报告 url 中以相应地过滤掉报告。

我有一个想法。如果我使用 Google Apps 脚本创建 Google Data Studio 数据连接器,并使用此数据连接器作为我的 Google DataStudio 报告的数据源,该怎么办?

然后我将与我的 100 个客户帐户分享这份报告。

每个客户帐户都将访问此报告(数据源是 Google Apps 脚本数据连接器)。Google Apps 脚本数据连接器将在此客户的 Google 帐户下运行。Google Script 将执行以下工作,验证此帐户,根据此帐户的 google 帐户了解它是哪个帐户,仅获取此帐户的数据,作为 Google DataStudio 报告的数据源。这样,每个客户都可以得到自己的报告。

那行得通吗?有谁有资源或代码可以分享这个问题和这个解决方案吗?

google-apps-script looker-studio

5
推荐指数
1
解决办法
3355
查看次数

Pandas DataFrame,1、2、3 和 NaN 值的默认数据类型

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
  'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
df = pd.DataFrame(d)
print df ['one']
Run Code Online (Sandbox Code Playgroud)

输出:

    a    1.0

    b    2.0

    c    3.0

    d    NaN

Name: one, dtype: float64
Run Code Online (Sandbox Code Playgroud)

该值设置为浮点数

d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
  'two' : pd.Series([1, 2, 3], index=['a', 'b', 'c'])}

df = pd.DataFrame(d)
print df ['one']
Run Code Online (Sandbox Code Playgroud)

输出:

a    1

b    2

c    3

Name: one, dtype: int64
Run Code Online (Sandbox Code Playgroud)

但现在该值设置为int64.

区别在于第一个,NaN …

python dataframe pandas

4
推荐指数
2
解决办法
2750
查看次数