arrow_back

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

登录 加入
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

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

实验 45 分钟 universal_currency_alt 1 个积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

GSP617

Google Cloud 自定进度实验

概览

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 “激活 Cloud Shell”图标

如果您连接成功,即表示您已通过身份验证,且当前项目会被设为您的 PROJECT_ID 环境变量所指的项目。输出内容中有一行说明了此会话的 PROJECT_ID

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

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

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

  2. 现在,输出的内容应如下所示:

输出:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (可选)您可以通过此命令列出项目 ID:
gcloud config list project

输出

[core] project = <project_ID>

输出示例

[core] project = qwiklabs-gcp-44776a13dea667a6 Note: For full documentation of gcloud, in Google Cloud, refer to the gcloud CLI overview guide.

任务 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”一词的日志条目。

BigQuery 日志

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

展开的日志以及突出显示的日志条目左侧的箭头

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

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

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

jobcompleted 日志

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

查询构建器

创建接收器

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

  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 日

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

此内容目前不可用

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

太好了!

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