MySQL HeatWave是一个非常强大的在线分析处理 (OLAP) 引擎,用于 OCI 上的 MySQL。通常需要数小时的分析 SQL 查询可以在几分钟内执行,因此 MySQL HeatWave 可以帮助节省大量时间、处理能力和成本。
如果 OLAP 应用程序的开发人员可以直接从 VS Code(许多 MySQL 开发人员的首选开发环境)直接访问和使用 MySQL HeatWave 实例,那不是很好吗?
用于 VS Code 的 MySQL Shell - 我们即将推出的新 VS Code 扩展 - 提供嵌入 VS Code 的 MySQL Shell 的广泛功能集,并完全支持内置的 MySQL HeatWave。
在这篇博文中,我将演示开始使用 MySQL Shell for VS Code 来开发针对 MySQL HeatWave 运行的分析 SQL 查询是多么容易。
连接到 OCI 上的 MySQL HeatWave 实例
在我们开始之前,我们必须在 Oracle 云基础设施 (OCI) 上设置一个到 MySQL HeatWave 实例的数据库连接。
这只需要完成一次,因为 VS Code 的 MySQL Shell 将存储所有已注册的数据库连接。要创建数据库连接,请按照以下说明进行操作或观看随后的屏幕录像。
让我们首先登录 OCI 并生成一个新的 API 密钥。MySQL Shell for VS Code 将使用此密钥来访问 OCI 上的资源。
- 单击右上角的用户图标,然后选择User Settings。
- 点击左下角的 API Keys 并点击Add API Key。
- 单击下载私钥并将 API 密钥存储在 用户主目录内的.oci文件夹中。然后点击添加。
- 复制配置文件文本并切换到 VS Code。
- 在 VS Code 中,选择 MySQL Shell for VS Code 扩展,然后单击 ORACLE CLOUD INFRASTRUCTURE 视图右侧的配置图标。
- 将配置文件文本粘贴到已打开的配置文件中。将顶部部分从 DEFAULT 重命名为租赁名称。
- 键入文本中指示的存储私钥文件的路径。关闭文件并重新加载 ORACLE CLOUD INFRASTRUCTURE 视图。
现在 VS Code 的 MySQL Shell 已配置,您可以浏览 OCI 租户的资源。接下来,我们将在 MySQL Shell 中为 VS Code 创建数据库连接。
- 浏览到 MySQL HeatWave 实例并单击鼠标右键。
- 选择 Create Connection with Bastion Service,将显示 DB Connection 对话框。它可能会询问是否创建一个新的堡垒,如果是,请确认。
- 输入MySQL用户名,点击Store Password,输入MySQL密码。
- 单击“确定”创建连接。
现在,您可以通过单击“数据库连接”磁贴或按“数据库连接”视图中数据库连接名称旁边的>按钮进行连接。
一旦连接到 MySQL HeatWave 实例,您就可以执行任何 SQL 查询。
重新扩展和管理 MySQL HeatWave 集群
用于 VS Code 的 MySQL Shell 允许开发人员直接从 IDE 管理 MySQL HeatWave 实例。它支持启动/停止/重启等基本操作,但也支持更高级的功能,如重新缩放 MySQL HeatWave 集群。
重新缩放 HeatWave 集群通常是为了增加分析查询中可以访问的数据量。由于 MySQL HeatWave Cluster 是基于内存的引擎,查询的完整数据集需要适合所有集群实例的总内存。
- 添加 HeatWave 集群
- 如果尚未添加 HeatWave Cluster,请在 ORACLE CLOUD INFRASTRUCTURE 视图中右键单击所需的 MySQL DB System 树节点,然后选择Add HeatWave Cluster。输入Cluster Size并选择 VM Shape Name,然后单击OK添加 HeatWave Cluster。
- 启动/停止/重启/删除 HeatWave 集群
- 在 ORACLE CLOUD INFRASTRUCTURE 视图中展开 MySQL DB System 树节点,然后右键单击 HeatWave Cluster。然后从弹出菜单中选择正确的操作。
- 重新缩放 HeatWave 集群
- 当处理更大的数据集时,通常需要重新缩放 HeatWave Cluster。在 ORACLE CLOUD INFRASTRUCTURE 视图中展开 MySQL DB System 树节点,然后右键单击 HeatWave Cluster。然后 从弹出菜单中选择Rescale the HeatWave Cluster 。
以下屏幕录像显示了如何执行 HeatWave Cluster 的重新缩放操作。可以在 MYSQL SHELL TASKS 视图中监控重新缩放操作的进度。
请注意,此重新编码已加快,因为重新缩放操作可能需要相当长的时间。
将数据库模式上传到 MySQL HeatWave 集群
在运行分析 SQL 查询之前,需要将查询使用的数据集上传到 HeatWave Cluster。可以直接从 MySQL for VS Code Extension 执行此操作。
- 展开 DATABASE CONNECTIONS 视图中的 DB Connection 树项并选择应该上传的数据库模式。在 macOS 上按住 Cmd 键(在 Linux/Windows 上按住 Control 键)可选择多个数据库模式。
- 右键单击其中一个选定的数据库模式,然后从弹出菜单中选择将数据加载到 HeatWave Cluster 。
- 在 MySQL HeatWave Cluster 加载对话框中设置所有必需的选项,然后单击确定。
- 监控进度,直到上传数据库模式。
根据数据集的大小,上传可能需要相当长的时间。您可以在上传过程中继续工作,打开数据库连接并执行其他任务。要检查上传操作的进度,请单击 MYSQL SHELL TASKS 视图中的 Load Data to HeatWave Cluster 条目。
对 HeatWave 集群引擎执行分析查询
上传数据集后,就可以编写和执行 SQL 查询。MySQL HeatWave 实例将自动检测是否可以通过将执行卸载到 HeatWave 集群来加速 SQL 查询。如果无法卸载 SQL 查询,将使用常规 MySQL 引擎,这会导致分析查询的执行时间变慢。
因此,当连接到 MySQL HeatWave 实例时,用于 VS Code 的 MySQL Shell 将自动在 DB Notebook 工具栏中显示两个特殊的执行按钮。
这些 HeatWave 执行按钮将强制在 HeatWave 集群上执行 SQL 查询,并在无法在那里执行 SQL 查询的情况下显示任何问题。
在下面的例子中,屏幕录像在尝试执行 SQL 查询时显示错误。它还显示了解释上传失败原因的 MySQL 优化器跟踪。在这种情况下,HeatWave 引擎尚不支持使用 STD() 聚合函数。然后可以修改 SQL 查询以解决该问题。
概括
用于 VS Code Extension 的 MySQL Shell 使开发人员可以非常轻松地直接在 VS Code 中连接、管理和使用 MySQL HeatWave 实例。它隐藏了很多复杂性并帮助用户专注于 MySQL HeatWave 的强大分析功能。
原文标题:A Quick Guide to MySQL HeatWave with MySQL Shell for VS Code
原文作者:Michael Zinner
原文链接:https://blogs.oracle.com/mysql/post/a-quick-guide-to-mysql-heatwave-olap-with-mysql-shell-for-vs-code




