访问 700 多个实验和课程

Google Cloud 上的 SingleStore

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

GSP1096

Google Cloud 自学实验的徽标

概览

在本实验中,您将亲自上手部署 SingleStoreDB,并将其与 Google Cloud 的云原生产品(如 Pub/Sub、Dataflow 和 Cloud Storage)结合使用。为展示这些产品的功能,实验将使用纽约市出租车公共数据集。

在本实验中,您首先将通过本地浏览器部署 SingleStoreDB,并创建适当的架构。然后,使用 Pub/Sub 在 Dataflow 的帮助下将数据实时推送到 Cloud Storage。利用 SingleStoreDB 的原生流水线,来处理对象存储中生成和存储的数据。SingleStoreDB 注入数据后,您就可以运行查询并与 SingleStore 交互了。

学习内容

在本实验中,您将学习如何执行以下任务:

  • 登录并浏览 Google Cloud。
  • 创建 SingleStoreDB 实例/集群。
  • 使用 Cloud Shell 连接到 SingleStoreDB 并创建架构。
  • 创建 Pub/Sub 主题和订阅,以及将数据拉取和推送至其他服务。
  • 创建 Dataflow 流处理作业。
  • 使用 SingleStore 原生流水线从对象存储中加载数据。
  • 在 SingleStore 中运行查询并与数据交互。

前提条件

您必须拥有个人邮件账号,以便回复 SingleStore 发送的验证邮件。在本实验中您需要回复验证码,并且只能使用个人邮箱进行回复。

熟悉 Google Cloud 和 SingleStore 会有所帮助,但这不是硬性要求。

设置和要求

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

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 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 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

任务 1. 启动您自己的 SingleStore 集群

此时,您应该已在无痕式窗口中登录 Google Cloud 控制台。

  1. 在您打开的无痕式窗口的另一个标签页中,前往 SingleStore 门户。您应该会看到以下页面:
SingleStore 登录页面
  1. 点击 Sign up(注册),然后输入您的详细信息。
  2. 对于 Company email address(公司邮箱),请输入您的个人邮箱。
  3. 点击 Continue(继续)。
  4. 输入唯一密码,然后点击 Continue(继续)以登录 SingleStore。
  5. 输入您邮箱中收到的验证码,然后点击 Submit(提交)。
  6. 选中 Terms of Service + Privacy Policy(服务条款 + 隐私权政策)对应的复选框,然后点击 Continue(继续)。
  7. About your project(关于您的项目)界面中,选择其中一个选项,然后点击Next(下一步)。
  8. 点击 View my Deployment(查看我的部署),前往 SingleStore 客户门户。
  9. 看到 Your free starter workspace is ready!(您的免费入门级工作区已准备就绪!)后,点击 Start Using SingleStore(开始使用 SingleStore)。

创建工作区

  1. 点击左上角的 + Create New(+ 新建),然后选择 Deployment(部署)。

  2. 在“Create Workspace”(创建工作区)页面上,配置以下设置:

    • Workspace Group Name(工作区群组名称):Workshop
    • Cloud Provider(云服务提供商):GCP
    • Region(区域):US East 4 (N.Virginia)(这应该是默认区域,如果不是,请相应地进行更改)

您的配置应如下所示:

创建工作区页面

  1. 点击 Next(下一步)。

  2. Workspace Details(工作区详细信息)页面上,保留默认设置,然后点击 Create Workspace(创建工作区)。

等待几分钟,让工作区启动。它会为您生成一个示例数据库,但您在本实验中不会使用该数据库。

任务 2. 连接到 SingleStore 和 Google Cloud

  1. 在连接到 SingleStore 工作区之前,请返回 Google Cloud 控制台。

  2. 点击控制台右上角的激活 Cloud Shell (Cloud Shell 图标) 图标,打开一个新的 Cloud Shell 窗口。如果出现提示,请点击继续授权

  3. 在 Cloud Shell 中,运行以下命令来克隆 GitHub 代码库,以下载研讨会的代码。

git clone https://github.com/mlochbihler/singlestore-gcp-looker-devday-01 cd singlestore-gcp-looker-devday-01/section_b
  1. 返回 SingleStore 门户。工作区初始化后,点击 Connect(连接)旁边的下拉箭头,然后选择 CLI Client(CLI 客户端)。

直接点击“Connect”(连接)

  1. Connect to Workspace(连接到工作区)页面上,首先复制为您生成的密码。密码旁边有一个复制图标。最好将此密码存储在本地文件中,因为您在本实验的后续环节需要用到它。

  2. 点击 MySQL 命令右侧的 Copy(复制)图标。这会将命令复制到剪贴板。

MySQL 命令应类似于:mysql -u admin -h svc-b675ae2f-b129-4baf-86ca-0a03c2c31d19-dml.gcp-virginia-1.svc.singlestore.com -P 3306 --default-auth=mysql_native_password --password

注意: 您可能会在上面的 MySQL 命令中看到刚刚创建的密码。这只会发生在您第一次打开该窗口时。之后,密码将不再显示,因此请务必保存密码。 如果由于某种原因无法连接到 SingleStoreDB,您可以前往 Access(访问权限)标签页,然后点击 Reset(重置)来重置密码。
  1. 返回 Google Cloud 控制台和 Cloud Shell 实例。

  2. 将 MySQL 命令粘贴到终端中。

  3. 如果系统提示,请输入您之前复制的密码。现在,您会看到 mysql> 提示。

已连接到 mysql

注意: 如果您的部署停止响应 MySQL 命令,请在 SingleStore 中检查工作区状态。如果闲置超过 20 分钟,工作区会被配置为暂停。如果是这种情况,按钮会显示 Resume(继续)。点击该按钮即可恢复运行。这应该需要几分钟时间。

任务 3. 创建架构并与 SingleStore 交互

在本部分中,您将构建表架构。

使用以下 DDL 创建名为 nyc_taxi 的新数据库。

  1. 在 mysql> 提示符处,运行以下代码:
source create_nyctaxi_tables.ddl; use nyc_taxi; show tables;

您应该会得到类似如下的结果。

输出:

Database changed +--------------------+ | Tables_in_nyc_taxi | +--------------------+ | avgcost | | avgdist | | avgriders | | avgridetime | | avgwait_driver | | avgwait_passenger | | drivers | | nab_nyctaxi_scored | | neighborhoods | | trips | | triptotals | | triptotalsc | +--------------------+ 12 rows in set (0.05 sec)

您已创建架构,数据库表也已列出。

  1. 运行以下命令:
select * from avgcost limit 5;

此查询的输出为 Empty set(空集)或 0。这是因为您只创建了架构,而表是空的。

先暂停一下。您已成功创建 SingleStore 数据库并连接到该数据库。架构已设置,但还没有数据。

如果您有额外的时间,可以深入探索 SingleStore!

任务 4. 在实验中探索数据(可选)

在今天的实验中,您将使用纽约市出租车数据,这些数据可以在 BigQuery 的公共数据集中找到,也可以在 NYC Open Data 网站上找到。

我们已提前将此数据放入 Cloud Storage 存储桶中,因此您无需将其下载/导入到 Google Cloud 中。您可以按照自己的意愿来探索这些数据。

NYC Open Data 网站提供与纽约市相关的各种免费数据集,包括出租车、教育、警务数据等。

在本实验中,您将使用纽约市城市规划局的社区制表区 (NTA) 数据,它提供了纽约市大致区域和社区的相关信息。您需要将此数据与纽约市出租车数据结合使用,以查看乘客的上车和下车地点。

在该网站上,您可以按社区直观查看数据:

NTA 地图

任务 5. 设置 Cloud Storage 存储桶

  1. 在开始本部分之前,请点击 + 按钮,打开一个新的 Cloud Shell 终端标签页:
Cloud Shell 功能区中突出显示的“添加”按钮。


在 Google Cloud 中,设置资源主要有两种方式:通过 GUI 和通过 CLI。在本实验中,您将使用 CLI 创建存储桶,并从纽约市出租车网站获取最新的社区数据。

  1. 复制并运行以下命令,创建您自己的存储桶,并将公共存储桶中的数据导入您自己的存储桶:
gcloud storage buckets create gs://$GOOGLE_CLOUD_PROJECT --location={{{ project_0.default_region | "REGION" }}} gcloud storage cp -r gs://configuring-singlestore-on-gcp/drivers gs://$GOOGLE_CLOUD_PROJECT gcloud storage cp -r gs://configuring-singlestore-on-gcp/trips gs://$GOOGLE_CLOUD_PROJECT gcloud storage cp gs://configuring-singlestore-on-gcp/neighborhoods.csv gs://$GOOGLE_CLOUD_PROJECT

如果出现提示,请点击授权

请注意,您的项目中已经创建了另一个存储桶。不用担心这个存储桶,它是 Dataflow 的暂存/临时存储位置。

  1. 前往 Cloud Storage > 存储桶,找到您的存储桶 (),并确保其中包含 2 个文件夹和 1 个 CSV 文件,如下所示:

“对象”标签页,其中包含 2 个文件夹,即 drivers 和 trips。

点击检查我的进度以验证是否完成了以下目标: 设置 Cloud Storage 存储桶

任务 6. 配置 Pub/Sub 和 Dataflow 流处理作业

Pub/Sub 和 Dataflow 资源已预先填充到您的项目中。如需查看这些资源,请使用 Cloud 控制台顶部的搜索框分别搜索 Pub/SubDataflow

  1. 对于 Pub/Sub,请执行以下操作:
  • 检查是否存在名为“Taxi”的主题
  • 验证是否存在名为“Taxi-sub”的订阅
  1. 对于 Dataflow,请执行以下操作:
  • 检查是否存在名为“GCStoPS”且状态为失败的作业。
  1. 点击该作业,然后点击克隆以运行此作业。重命名该作业,并检查作业信息(您在克隆时已预先填充了这些信息),以便了解您要运行的内容。向下滚动并点击运行作业

  2. 返回 Dataflow 作业,确保您的作业状态为“正在运行”。

注意:Dataflow 作业可能需要 5-7 分钟才能开始流式传输。
  1. 返回 Pub/Sub,找到 Taxi-sub 订阅,点击消息,然后点击拉取。您应该会开始收到消息。此类消息应如下所示:

pubsub subscription messages pulled

现在,您已经模拟了实时数据流!举个例子,如果您要将更多数据上传到 GCS 并拉取到 Pub/Sub 中,Dataflow 将实时移动数据。

点击检查我的进度以验证是否完成了以下目标: 克隆 Dataflow 作业

任务 7. 在 Google Cloud 上设置流式架构

Google Cloud 上常见的流式架构包括 Pub/Sub > Dataflow > GCS。在此任务中,您将进行此设置,然后将 SingleStore 插入 GCS。

  1. 返回 Dataflow。

  2. 点击基于模板创建作业,并将作业命名为 pstogcs(PubSub 到 GCS)。

  3. 选择区域端点:

  4. 选择以下 Dataflow 模板:Pub/Sub Subscription or Topic to Text Files on Cloud Storage。此时会显示多个选项,因此您可能需要进行过滤

  5. 目标部分,点击浏览,然后选择您之前创建的存储桶:。您需要将此作业的输出结果存储在您之前创建的存储桶中。点击选择

  6. 将输出文件名前缀保留为 output。这是为了清楚地标记输出文件。

  7. 展开可选的来源参数。在 Pub/Sub 输入订阅部分,选择您刚刚看到消息进入的 Taxi-sub。无需包含输入主题。

  8. 将所有其他设置保留为默认值,然后前往页面底部,点击运行作业

注意: 如果您在尝试运行作业时收到错误消息,请检查日期和时间的“自定义格式”字段中是否存在问题。如果是这种情况,请删除所有这些字段中的值,然后重试。 “基于模板创建作业”页面,其中包含上述字段。

此 Dataflow 作业应读取您之前在 Pub/Sub 中看到的消息,并将它们流式传输到您的 Cloud Storage 存储桶中。

注意:Dataflow 作业可能需要 5-7 分钟才能开始流式传输。
  1. 前往 Cloud Storage > 存储桶,然后打开您的存储桶 。您应该会在存储桶中看到一个带有时间戳的输出文件。

  2. 点击输出文件,然后选择下载。您应该会看到出租车数据,其中包括名称、坐标和时间。

列出出租车数据的输出文件。

点击检查我的进度以验证是否完成了以下目标: 在 Google Cloud 上设置流式架构

在 Cloud Shell IDE 中启用 Gemini Code Assist

您可以在集成开发环境 (IDE)(例如 Cloud Shell)中使用 Gemini Code Assist,以获取代码方面的指导或解决代码问题。您需要先启用 Gemini Code Assist,然后才能使用该功能。

  1. 在 Cloud Shell 中,使用以下命令启用 Gemini for Google Cloud API:
gcloud services enable cloudaicompanion.googleapis.com
  1. 点击 Cloud Shell 工具栏上的打开编辑器
注意:如需打开 Cloud Shell 编辑器,请点击 Cloud Shell 工具栏上的打开编辑器。您可以根据需要点击打开编辑器打开终端,在 Cloud Shell 和代码编辑器之间切换。
  1. 在左侧窗格中,点击设置图标,然后在设置视图中搜索 Gemini Code Assist

  2. 找到Geminicodeassist: Enable(Geminicodeassist:启用)并确保选中了该复选框,然后关闭设置

  3. 点击屏幕底部状态栏中的 Cloud Code - 无项目

  4. 按照说明对插件进行授权。如果系统未自动选择项目,请点击选择 Google Cloud 项目,然后选择

  5. 检查您的 Google Cloud 项目 () 是否显示在状态栏的 Cloud Code 状态消息中。

将 Cloud Storage 连接到 SingleStore

现在,您需要创建一个密钥,将此专用 Cloud Storage 存储桶连接到 SingleStore。

  1. Cloud Storage 中,前往设置(位于导航菜单中)。

  2. 点击互操作性标签页。点击底部的创建密钥

接下来,您将使用流水线将数据注入 SingleStore,并启动存储过程。

  1. 返回 Cloud Shell 标签页,其中打开了 SingleStore 终端。
  1. 如需创建初始 SingleStore 流水线,请执行以下操作:

    • 在第一个 CloudShell 标签页中,点击打开编辑器。如果看到提示,请点击在新窗口中打开
    • 打开 singlestore-gcp-looker-devday-01 > section b > create_nyctaxi_pipelines.dml 文件。

    此操作会启用 Gemini Code Assist,启用后,编辑器右上角会显示 Gemini Code Assist:智能操作 图标。

使用 Gemini Code Assist 了解 SingleStore 流水线文件

  1. 点击 Gemini Code Assist:智能操作 Gemini Code Assist:智能操作 图标,然后选择 Explain this(解释此内容)。

  2. Gemini Code Assist 会打开一个聊天窗格,其中预填充了 Explain this 提示。在 Code Assist 聊天窗格的内嵌文本框中,将预填充的提示替换为以下内容,然后点击发送

You are an expert Data Engineer at Cymbal AI. A new team member is unfamiliar with this SingleStore Pipelines code. Explain this "create_nyctaxi_pipelines.dml" file in detail, breaking down its key components used in the code. For the suggested improvements, don't update this file.

针对 create_nyctaxi_pipelines.dml 文件中代码的说明会显示在 Gemini Code Assist 聊天中。

  1. 对该文件进行以下更新:
  • 在第 4 行,将存储桶名称更改为您的存储桶名称。
  • 在第 5 行,添加您刚刚创建的存储桶访问 ID 和密钥。
  • 在第 12 行,将存储桶名称更改为您的存储桶名称。
  • 在第 13 行,添加您刚刚创建的存储桶访问 ID 和密钥。
  • 在第 22 行,将存储桶名称更改为您的存储桶名称,并将 .tsv 更改为 .csv
  • 在第 23 行,添加您刚刚创建的存储桶访问 ID 和密钥。
  • 在第 26 行,将 /t 更改为 ,

您的视图文件应如下所示:

更新后的 create_nyctaxi_pipelines.dml 文件

  1. 点击保存
  1. 返回 Cloud Shell 终端。使用之前用过的 MySQL 命令连接到 SingleStore。您可以使用之前用于连接到 SingleStore 的相同命令。

  2. 在 MySQL 提示符处,运行以下命令来创建流水线:

source create_nyctaxi_pipelines.dml; show pipelines;

您应该会看到类似如下所示的输出。

输出:

| Pipelines_in_nyc_taxi | State | Scheduled | | --------------------- | ------- | --------- | | neighborhoods | Stopped | False | | drivers | Stopped | False | | trips | Stopped | False |

任务 8. 启动流水线

  1. 运行以下命令来启动流水线:
source start_nyctaxi_pipelines.dml; show pipelines;

输出:

| Pipelines_in_nyc_taxi | State | Scheduled | | --------------------- | ------- | --------- | | neighborhoods | Running | False | | drivers | Running | False | | trips | Running | False |
  1. 确保三个流水线的状态均为正在运行

任务 9. 运行运营分析查询

  1. 运行以下命令以运行运营分析查询:
select * from trips limit 5; select * from drivers limit 5; select * from neighborhoods limit 5; 命令输出

报告 1:每个社区的总行程数。

  1. 然后运行以下命令:
source total_trips.sql;

报告 2:从乘客叫车到上车之间的平均时长。

  1. 然后运行以下命令:
source average_wait.sql;

报告 3:行程的平均距离。

  1. 运行以下命令:
source average_distance.sql;

报告 4:从乘客上车到下车之间的平均时长。

  1. 运行以下命令:
source average_ride_time.sql;

报告 5:行程的平均费用。

  1. 运行以下命令:
source average_cost.sql;

报告 6:从司机接单到乘客上车之间的平均时长。

  1. 运行以下命令:
source average_wait2.sql;

报告 7:每次行程的平均乘客数。

  1. 最后,运行以下命令:
source average_num_riders.sql;

恭喜!

恭喜!在本实验中,您部署了 SingleStoreDB,并将其与 Google Cloud 的云原生产品(如 Pub/Sub、Dataflow 和 Cloud Storage)结合使用。您还使用了 SingleStoreDB 的原生流水线,从 Cloud Storage 注入数据并运行运营分析查询。

如需详细了解 SingleStore,请访问 SingleStore.com

Google Cloud 培训和认证

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

本手册的最后更新时间:2025 年 9 月 4 日

本实验的最后测试时间:2025 年 9 月 4 日

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

准备工作

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

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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