您可以从 bigquery 资源中使用其客户端库(使用 API)来获取该信息。
2021 年 7 月 12 日更新:JAVA API
不幸的是,这是从 JAVA API BIGQUERY 客户端中取出的,没有消息是否会返回。因此,您将无法从 BigQuery 最新客户端获取此类信息。你可以看到一个关于它的讨论here。
无论如何,您都可以使用resource manager 获取该信息。 (尽管您需要从上面的层次结构或至少项目名称中获得信息)
使用的库
import com.google.cloud.resourcemanager.v3.Project;
import com.google.cloud.resourcemanager.v3.ProjectName;
import com.google.cloud.resourcemanager.v3.ProjectsClient;
代码
try (ProjectsClient projectsClient = ProjectsClient.create()) {
ProjectName name = ProjectName.of("[PROJECT]");
Project prjct = projectsClient.getProject(name);
System.out.println(prjct.getProjectId());
System.out.println(prjct.getName()); # returns `projects/415104041262`
}
要设置DOM 和依赖项,您可以查看resource manager 的官方文档。另外,这里是可以查看用于获取项目的客户端的链接,project client
解决方法:
或者,您可以使用其他库和 cmds 来获取该信息,它利用 bigquery python 客户端库来获取您正在寻找的信息:
from google.cloud import bigquery
from google.oauth2 import service_account
# key_path = "path/to/service_account.json"
key_path = "my-service-account-key.json"
credentials = service_account.Credentials.from_service_account_file(
key_path, scopes=["https://www.googleapis.com/auth/cloud-platform"],
)
client = bigquery.Client(credentials=credentials, project=credentials.project_id,)
print(client.get_service_account_email())
projects = client.list_projects(max_results=10)
for project in list(projects):
print(project.project_id)
print(project.numeric_id)
注意:按照link 获取有关如何获取服务帐户 json 的指导。
输出
bq-service-account-project-number@bigquery-account.iam.gserviceaccount.com
project id: my-project-id
project number: 7788990000xxx
bigquery 资源之外的另一个选项,用于获取有关项目的信息。您可以打开google cloud shell 并执行以下命令来获取该信息:
gcloud projects describe <my-project-id>
输出:
createTime: '2015-10-20T10:12:09.452Z'
lifecycleState: ACTIVE
name: my-project-id
parent:
id: '111222333xxx'
type: folder
projectId: my-project-id
projectNumber: '777555000xxx'
另外,我将这些链接留在您可以获取项目相关信息的地方:
最后,如果您正在寻找为什么难以从 bigquery 中获取有关项目的信息,我将提供此链接来讨论 resource-hierarchy。