我是谷歌云存储的新手,我尝试设置一个每天下载一次 blob 的功能。目前我正在我的 Jupyter Notebook 中工作,但最终,代码将在 Azure 函数中运行。我正在努力设置将我连接到存储桶的客户端。我有一个服务帐户凭据 JSON,它使我能够连接到 google。
在本地我找到了一个解决方案:
from google.cloud import storage
client = storage.Client.from_service_account_json('<PATH_TO_SERVICE_ACCOUNT_JSON>')
Run Code Online (Sandbox Code Playgroud)
问题是我没有将 JSON 存储在云中的路径,但我将其存储在密钥保管库中。我想出了以下解决方案:
from google.cloud import storage
import json
from google.oauth2 import service_account
string_key = get_key_from_key_vault()
service_account_info = json.loads(string_key)
google_credentials = service_account.Credentials.from_service_account_info(
service_account_info
)
scoped_credentials = google_credentials.with_scopes(
['https://www.googleapis.com/auth/cloud-platform.read-only'])
print(type(scoped_credentials))
client = storage.Client(credentials = scoped_credentials)
Run Code Online (Sandbox Code Playgroud)
我不完全确定我是否需要该scoped_credentials = ...
部件,但我只有对存储桶的读取权限。(如果我跳过该部分,错误保持不变)
当我选择此解决方案时,出现以下错误:
DefaultCredentialsError: Could not automatically determine credentials. Please set
GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For
more information, please see …
Run Code Online (Sandbox Code Playgroud) python google-authentication google-cloud-storage google-cloud-platform google-auth-library
如何在BigQuery中使用CREATE EXTERNAL TABLE
DDL语句?
另一个大数据仓库解决方案,如 SnowFlake 和 Hive Based(Presto、AWS Athena...)都有它,而且它非常有用。
我已经建立了我的机器学习模型,现在作为下一步,我希望将其公开。计划是:
但问题是我无法估计在 Google Cloud Run 中启动和运行容器的成本(我仍然是初学者)。如何估计最坏的情况,即它应该产生的最大成本是多少?Google Cloud Run 定价表中有 CPU、内存、请求和网络属性,但:
我有一个 google cloud postgres 实例,我正在尝试将架构中的所有表复制到单独的 google bigquery 表中,并使用运行联合查询的脚本,该脚本将安排在某个时间间隔运行。我正在使用 information_schema 中的数据,因为我希望脚本也能够选择新添加的表。
假设分析模式有 4 个表。
analytics.table1
analytics.table2
analytics.table3
analytics.table4
Run Code Online (Sandbox Code Playgroud)
下面的示例代码生成分析架构中所有表的列表,并将其设置为变量名称“table_name”。
DECLARE table_name ARRAY<STRING>;
SET table_name=(
SELECT * FROM EXTERNAL_QUERY("<your_connection_id>",
"select table_schema||'.'||table_name as table_name from information_schema.tables
where table_schema='analytics';");
);
Run Code Online (Sandbox Code Playgroud)
我对该脚本的目的是使用以下查询创建四个单独的 bigquery 表
CREATE TABLE analytics.table1 AS
SELECT * FROM EXTERNAL_QUERY("<your_connection_id>", "SELECT * FROM analytics.table1");
CREATE TABLE analytics.table2 AS
SELECT * FROM EXTERNAL_QUERY("<your_connection_id>", "SELECT * FROM analytics.table2");
CREATE TABLE analytics.table3 AS
SELECT * FROM EXTERNAL_QUERY("<your_connection_id>", "SELECT * FROM analytics.table3");
CREATE TABLE analytics.table4 AS
SELECT …
Run Code Online (Sandbox Code Playgroud)