在 AWS 上使用 MySQL HeatWave

如果您在 AWS 上开发数据库应用,并且需要实时分析和快速查询,那么 MySQL HeatWave on AWS 就是这样构建的。HeatWave 利用内存中加速功能,在不影响事务工作负载 (OLTP) 性能的情况下提供实时分析 (OLAP) 功能,而不是设计复杂的 ETL 管道将数据移动到单独的分析数据库。MySQL HeatWave 是一项完全托管的服务,允许开发人员使用全球流行的开源数据库快速创建和部署安全的云原生应用。MySQL HeatWave 由 Oracle 的 MySQL 开发团队开发和提供支持。

MySQL HeatWave 的优点之一是能够直接针对现有事务数据运行分析,这意味着您只需管理一个数据库而不是两个数据库,即可获得实时、安全的分析,而不会产生 ETL 复制的复杂性、延迟和成本。

要开始使用,让我们在 AWS 上免费试用。快速注册将提供 300 美元的免费储值,以了解 AWS 上的 MySQL HeatWave 是多么棒。

  1. 提供国家/地区、名字和姓氏,以及用于验证的电子邮件地址。
    客户注册屏幕截图 1
  2. 单击“验证我的电子邮件”
  3. 单击电子邮件验证消息中的链接时,将提示您提供强密码、云账户名称和主区域。选择美国东部(阿什本)作为主区域。注:如果不选择 IAD/阿什本作为主区域,则需要申请提高区域限制。一旦增加,您将能够订阅阿什本地区(这是 AWS 上的 HeatWave 所必需的)。
    客户注册屏幕截图 2
  4. 通过输入地址和开单详细信息来完成注册流程。
  5. 接受协议并单击“开始我的免费试用”
    账户注册已完成屏幕截图
  6. 稍后,您的帐户将被创建,您将能够登录!
  7. 在主仪表盘上,您应该会看到横幅来开始使用 AWS 上的 MySQL HeatWave。单击“转至服务”。
    在 AWS 横幅上使用 MySQL HeatWave 的屏幕截图
  8. 在下一页上,您可以选择“请求升级”,这将将您的帐户转换为付费帐户。别担心!你不会被收取任何费用 ...... 记住,你有 300 美元的免费积分可以玩。
    在 AWS 上设置 MySQL HeatWave 的屏幕截图 - 请求升级
    注意 —完成所有后端处理需要几分钟时间,然后才能完成升级过程。如果您收到指示相同的信息,请随时离开一段时间。让你的眼睛休息一下。
  9. 完成升级过程后,可以继续执行下一步。
  10. 由于您选择了阿什本作为主区域,因此您应该能够跳至步骤 3,该步骤将指导您申请 AWS 服务限制上的 HeatWave。
  11. 达到服务限制后,您可以在 AWS 上启用 HeatWave。
  12. 现在,您已准备好在 AWS 上设置 MySQL HeatWave 集群!

请注意,基于 AWS 的 MySQL HeatWave 与 OCI 的身份和访问管理系统集成。当您在 AWS 上注册 HeatWave 时,系统会将您定向到 OCI 登录页面,您必须在其中使用先前创建的 OCI Cloud 账户登录。为了保持简单,在 OCI 中管理和监视计费。

先决条件

  • 您的 Oracle Cloud 账户名称、管理员用户名和密码
  • 兼容的浏览器(Chrome 69+、Safari 12.1+、Firefox 62+ 或任何经 Oracle Jet 批准的浏览器)

概览

要开始在 AWS 上使用 MySQL HeatWave,您既不需要 AWS 体验,也不需要 AWS 账户。但是,如果您确实有这些,那么您可以执行哪些操作来将 AWS 应用程序与 MySQL HeatWave 集成。我们走吧!

  1. 登录到 AWS 控制台上的 MySQL HeatWave
  2. 创建具有 HeatWave 集群的 MySQL 数据库系统
  3. 加载一些示例数据
  4. 连接到数据库并运行一些查询
  5. 将表加载到 HeatWave 中并查询更多

步骤

  1. 在 AWS 上登录 MySQL HeatWave
    如果您刚刚完成注册过程并登录,则可能需要提前一步。否则,您需要导航到 MySQL HeatWave on AWS 登录页面。在此处,您将输入您的云账户名称(可能已由浏览器缓存)并单击“Continue(继续)”。
    在下一页上,系统会提示您输入在注册过程中创建的用户 ID 和密码。正确输入所有内容后,您将在 MySQL HeatWave 仪表盘上找到自己。
  2. 使用 HeatWave 集群创建 MySQL 数据库系统
    现在开始有趣!让我们开始预配。
    单击仪表盘上的“创建 MySQL 数据库系统”以启动“创建 MySQL 数据库系统和 HeatWave 集群”对话框。第一部分重点是配置底层 MySQL 实例和 HeatWave 集群本身。
    创建 MySQL 数据库系统和 HeatWave 集群的屏幕快照 - 不完整
    创建 MySQL 数据库系统和 HeatWave 集群的屏幕快照 - 不完整
    填写所需详细信息:
    1. 显示名称
    2. 说明
    3. 管理员身份证明(不要丢失这些身份证明)
    4. 选择硬件配置。请注意,配置确定 vCPU 核心数和 RAM 量。(即 MySQL.4.32GB 为 4 个 vCPU 和 32GB RAM)
    5. 如果/需要,以后可以增加 GiB...this 中的起始数据存储大小。
    6. 选择最新的数据库版本(当前仅支持最新的 MySQL 版本 8.0.31)
    7. 选择维护窗口(自动或手动)
    8. 选择可用性区域 (Availability Zone,AZ)。注意:如果您选择手动,系统将提示您选择物理 AWS 可用性区域。如果您在 AWS 上部署了现有应用程序,则需要将 AWS 控制台中显示的逻辑 AZ 与此处选择的物理 AZ 协调一致。
    9. 提供网络详细信息。MySQL 实例将通过公共端点进行访问。默认情况下,不允许使用入站连接。对于允许的客户端地址,您必须输入一个特定的公共 IP 地址,后跟 /32。即,如果客户端计算机的公共 IP 为 1.2.3.4,请输入 1.2.3.4/32。您可以输入用分号分隔的多个值。在本示例中,我们还将使用默认端口 3306 和 33060。
    10. 单击“下一步”
      “Create MySQL DB System and HeatWave Cluster(创建 MySQL 数据库系统和 HeatWave 集群)”的屏幕截图 - 已完成
    11. 提供 HeatWave 群集的显示名称和说明。
    12. 选择配置 - 这将确定每个群集节点中可用的内存量。
    13. 选择群集大小(从 1 到 128)。在本练习中,建议选择 HeatWave.16GB 配置和 1 个群集大小。
    14. 单击“Create(创建)”,然后在发生魔法时坐下来放松几分钟。
  3. 加载示例数据
    现在,所有数据都已启动且正在运行,让我们加载一些数据,并将此内容放到测试中。
    1. 打开新的浏览器选项卡并登录 OCI 控制台以访问 Cloud Shell。如果提示输入身份证明,则将使用与登录 HeatWave 时输入的相同 Cloud 账户、用户名和密码。
    2. 打开 OCI Cloud Shell
      OCI Cloud Shell 的屏幕截图
    3. 检索示例数据库:airport-db
      wget https://downloads.mysql.com/docs/airport-db.tar.gz
      
      tar xvzf airport-db.tar.gz
    4. 找到与 Cloud Shell 环境关联的公共 IP 地址。这将添加到 MySQL 允许的客户机地址。
      dig +short myip.opendns.com @resolver1.opendns.com
    5. 返回到 MySQL 仪表盘并编辑 MySQL 数据库实例。将带有 /32 的公共 IP 地址添加到允许的客户端地址,然后单击 "Save"(保存)。
    6. 返回到 Cloud Shell 的浏览器选项卡并启动 MySQL Shell 会话。创建数据库系统时,需要提供管理员用户名和密码。您还需要以前复制的主机名。
      mysqlsh username@hostname
      按 Enter 键后,系统将提示您输入口令。
    7. 使用 loadDump 导入以前解压缩的数据库。
      util.loadDump("airport-db", {threads: 16, deferTableIndexes: "all", ignoreVersion: true})
      此步骤可能需要几分钟时间。现在是一个快速小吃或检查天气预报的好机会。
    8. 导入完成后,您可以继续操作。干得好!
  4. 运行几个简单的查询 ... 只是为了更好地衡量
    我们稍后会将性能与 HeatWave 进行比较。MySQL shell 是一个非常强大的工具,但接口并不适合所有人。在我们继续之前,让我们运行一些查询只是为了好玩;一个很好的机会来弯曲这些命令行肌肉。
    1. 我们为什么不尝试在查询中再挑选几行:
      select * from airplane limit 10000;
    2. 看起来不错?只有一个 more...for 的乐趣!
      mysql SELECT booking.price, count(*) FROM booking WHERE booking.price > 500 GROUP BY booking.price ORDER BY booking.price LIMIT 10;
      记下执行时间。
    3. 通过键入 '\d' 并按 ENTER 键退出 MySQL Shell。
    4. 将表加载到 HeatWave 中并查询更多 您正在执行 great...and,是时候开启高温了!在最后一节中,您将获得 MySQL HeatWave 的强大功能。
      1. 返回到带有 MySQL HeatWave 仪表盘的浏览器选项卡。导航到工作区窗格。
      2. 选择您的数据库系统,然后输入之前创建的管理员用户名和密码(您已保存这些用户名和密码,对吗?)。单击“Connect(连接)”,并给它几秒钟以打开门。
      3. 现在您已连接,是时候运行与以前相同的查询了。这仍然会针对 InnoDB 运行,但这是有意的。
        mysql SELECT booking.price, count(*) FROM booking WHERE booking.price > 500 GROUP BY booking.price ORDER BY booking.price LIMIT 10;
        请注意,complete...and 准备就绪所需的时间!
    5. 转到 HeatWave 选项卡中的“Manage Data(管理数据)”,选择 airportdb,这将选择数据库中的所有表。单击“加载到 HeatWave”按钮。
      "Manage Data in Heatwave"(在 Heatwave 中管理数据)选项卡的屏幕截图
      这将打开一个窗口,其中概述任务并提供估计完成时间。在快速切换后,单击“Load Tables(加载表)”。
      MySQL Autopilot 并行加载表的屏幕抓图:HeatWave
      将新表加载到 HeatWave 后,它将自动跟踪并加载所有数据。或者,至少在您卸载该表之前。
      请注意:如果您暂时不需要 HeatWave 的强大功能,则可以随时停止它以帮助保持低成本。停止时,系统将继续跟踪所有加载表的数据 DIFFS。当 HeatWave 重新启动时,它将自动更新加载的表。
  5. 再次运行上一个查询,并注意性能差异。
  6. 您可以随时试验更大的数据集和/或更复杂的查询。每次要测试 InnoDB 和 HeatWave 之间的性能基准时,只需卸载,然后重新加载表。
  7. 这让我们走到尽头。您可以终止,停止,或离开运行资源你 created...and 不要忘记拍自己的背。做的好!

总结

到目前为止,我们在 AWS 上创建了一个 MySQL 数据库实例和 HeatWave 集群,加载了一些数据,并在系统周围进行了一些戳记。您在 HeatWave...all 中运行查询而无需对系统之间的任何数据执行 ETL 操作,从而显著提高了性能。凭借所有这些功能,我们高度鼓励您继续探索性能和功能。我们只是划伤了表面!

想了解更多信息?欢迎加入我们的公共 Slack 频道讨论!

注:为免疑义,本网页所用以下术语专指以下含义:

  1. 除Oracle隐私政策外,本网站中提及的“Oracle”专指Oracle境外公司而非甲骨文中国。
  2. 相关Cloud或云术语均指代Oracle境外公司提供的云技术或其解决方案。