arrow_back

使用 BigQuery 和 Cloud Logging 分析 BigQuery 使用情况

登录 加入
访问 700 多个实验和课程

使用 BigQuery 和 Cloud Logging 分析 BigQuery 使用情况

实验 45 分钟 universal_currency_alt 1 个积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

GSP617

概览

Cloud Logging 是来自各种 Google Cloud 服务(包括 BigQuery)的日志的中央存储库,非常适合进行短期到中期的日志存储。许多行业要求将日志保留更长的时间。为了保留日志来支持更长期的历史分析或复杂的审计,您可以设置一个接收器,以便将特定日志导出到 BigQuery。

在此实验中,您将在 Cloud Logging 中查看 BigQuery 日志、设置接收器以将其导出到 BigQuery,然后使用 SQL 分析这些日志。

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。

激活 Cloud Shell

Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。Cloud Shell 提供可用于访问您的 Google Cloud 资源的命令行工具。

  1. 点击 Google Cloud 控制台顶部的激活 Cloud Shell

  2. 在弹出的窗口中执行以下操作:

    • 继续完成 Cloud Shell 信息窗口中的设置。
    • 授权 Cloud Shell 使用您的凭据进行 Google Cloud API 调用。

如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 Project_ID 。输出内容中有一行说明了此会话的 Project_ID

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud 是 Google Cloud 的命令行工具。它已预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。

  1. (可选)您可以通过此命令列出活跃账号名称:
gcloud auth list
  1. 点击授权

输出:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注意:如需查看在 Google Cloud 中使用 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

任务 1. 打开 BigQuery

打开 BigQuery 控制台

  1. 在 Google Cloud 控制台中,选择导航菜单 > BigQuery

您会看到欢迎在 Cloud 控制台中使用 BigQuery 消息框,其中提供了指向快速入门指南和版本说明的链接。

  1. 点击完成

BigQuery 控制台即会打开。

任务 2. 创建数据集

  1. 探索器部分,点击以 qwiklabs-gcp- 开头的项目旁边的三个点。

  2. 点击创建数据集

  3. 将“数据库 ID”设置为 bq_logs

  4. 点击创建数据集

点击检查我的进度以验证是否完成了以下目标: 创建数据集

任务 3. 运行查询

首选,运行一个简单查询,这会生成一条日志。后面在设置将日志从 Cloud Logging 导出至 BigQuery 时,您将使用这一条日志。

  1. 请复制以下查询并将其粘贴到 BigQuery 查询编辑器中:
SELECT current_date
  1. 点击运行

任务 4. 设置从 Cloud Logging 导出日志

  1. 在 Cloud 控制台中,选择导航菜单 > 查看所有产品 > 日志记录 > Logs Explorer
注意:如果系统提示工作未保存,请点击“退出”。
  1. 所有资源中,选择 BigQuery,然后点击应用

  2. 现在点击右上角的运行查询按钮。

此时会显示来自该查询的几条日志。

查找包含“jobcompleted”一词的日志条目。

  1. 点击左侧的箭头以展开此条目。

然后点击右侧的展开嵌套字段按钮。

这会显示完整的 JSON 日志条目。向下滚动,查看其不同的字段。

  1. 向上滚动回此日志条目的标题,点击类似条目按钮,然后选择显示类似条目

这样可便于您使用正确的字词来设置搜索。您可能需要切换显示查询按钮才能看到。

创建接收器

现在您已得到了所需的日志,该设置接收器了。

  1. 点击更多操作下拉菜单中的创建接收器

  1. 填写各个字段,如下所示:
  • 填写接收器名称:JobComplete,然后点击下一步
  • 选择接收器服务:BigQuery 数据集
  • 选择 BigQuery 数据集(目标位置):bq_logs(即您之前设置的数据集)
  • 将其他选项保留为其默认设置。
  1. 点击创建接收器

来自 BigQuery 的任何后续日志条目将导出至 bq_logs 数据集的一个表中。

点击检查我的进度以验证是否完成了以下目标: 创建接收器

任务 5. 运行示例查询

为了向您的新表填充一些日志,请运行一些示例查询。

  • 转到 Cloud Shell,然后将以下各条 BigQuery 命令添加到 Cloud Shell 中:
bq query --location=us --use_legacy_sql=false --use_cache=false \ 'SELECT fullName, AVG(CL.numberOfYears) avgyears FROM `qwiklabs-resources.qlbqsamples.persons_living`, UNNEST(citiesLived) as CL GROUP BY fullname' bq query --location=us --use_legacy_sql=false --use_cache=false \ 'select month, avg(mean_temp) as avgtemp from `qwiklabs-resources.qlweather_geo.gsod` where station_number = 947680 and year = 2010 group by month order by month' bq query --location=us --use_legacy_sql=false --use_cache=false \ 'select CONCAT(departure_airport, "-", arrival_airport) as route, count(*) as numberflights from `bigquery-samples.airline_ontime_data.airline_id_codes` ac, `qwiklabs-resources.qlairline_ontime_data.flights` fl where ac.code = fl.airline_code and regexp_contains(ac.airline , r"Alaska") group by 1 order by 2 desc LIMIT 10'

您应该会看到每个查询返回的结果。

点击检查我的进度以验证是否完成了以下目标: 运行示例查询

任务 6. 在 BigQuery 中查看日志

  1. 回到 BigQuery(导航菜单 > BigQuery)。

  2. 展开名称以 qwiklabs-gcp- 开头的资源,然后展开 bq_logs 数据集。

您应该会看到一个“cloudaudit_googleapis_com_data_access”表,虽然名称可能会略有不同。

注意:您可能需要再次运行示例查询才能看到该表。
  1. 点击表名称,检查表的架构。请注意,该表中可能包含很多字段。

如果您点击了预览,但发现最近运行的查询所产生的日志并未出现,这是因为日志是流式传输到表中的,也就是说,新数据可以查询,但需要等一会才会显示在“预览”中。

为了使该表更有用,请创建一个视图,它会拉取表的一部分字段,并执行一些计算来派生出一个有关查询时间的指标。

  1. 点击编写新查询。在 BigQuery 查询编辑器中,将 替换为您的项目的名称并运行以下 SQL 命令(可从实验页面左侧的实验详情页面轻松找到项目 ID):
CREATE OR REPLACE VIEW bq_logs.v_querylogs AS SELECT resource.labels.project_id, protopayload_auditlog.authenticationInfo.principalEmail, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobConfiguration.query.query, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobConfiguration.query.statementType, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatus.error.message, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.startTime, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.endTime, TIMESTAMP_DIFF(protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.endTime, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.startTime, MILLISECOND)/1000 AS run_seconds, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.totalProcessedBytes, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.totalSlotMs, ARRAY(SELECT as STRUCT datasetid, tableId FROM UNNEST(protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.referencedTables)) as tables_ref, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.totalTablesProcessed, protopayload_auditlog.servicedata_v1_bigquery.jobCompletedEvent.job.jobStatistics.queryOutputRowCount, severity FROM `<YOUR-PROJECT-ID>.bq_logs.cloudaudit_googleapis_com_data_access_*` ORDER BY startTime

点击检查我的进度以验证是否完成了以下目标: 在 BigQuery 中查看日志

  1. 现在查询此视图。编写一个新查询,并运行以下命令:
SELECT * FROM bq_logs.v_querylogs
  1. 滚动浏览所执行查询的结果。

恭喜!

您已成功从 Cloud Logging 将 BigQuery 日志导入到了 BigQuery 表,然后使用 SQL 对其进行了分析。

后续步骤/了解详情

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

上次更新手册的时间:2024 年 5 月 31 日

上次测试实验的时间:2024 年 5 月 31 日

版权所有 2025 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。