跳到主要内容

MySQL

此页面包含MySQL的设置指南和参考信息。

此目的地有两种类型的连接:

  1. destination-mysql:支持SSL和非SSL连接。
  2. destination-mysql-strict-encrypt:与上面的连接非常相似,但仅支持SSL连接。

前提条件

  • 通过数据规范化将数据同步到MySQL,需MySQL8.0.0或更高版本
  • 无需数据规范化将数据同步到MySQL,需MySQL5.0或更高版本。
  • 主机
  • 端口
  • 数据库
  • 用户名
  • 密码

权限

您将需要一个具有CREATE, INSERT, SELECT, DROP权限的MySQL用户。我们强烈建议为此创建一个特定于Daspire的用户。

网络访问

确保Daspire可以访问您的MySQL数据库。如果您的数据库位于VPC内,您可能需要允许从您用于公开Daspire的IP进行访问。

目标数据库

MySQL不区分数据库和模式。数据库本质上是所有表所在的架构。您需要选择现有数据库或创建新数据库。这将充当默认数据库/模式,如果数据源不提供命名空间,将在其中创建表。

功能

功能是否支持
完全刷新同步支持
增量同步 - 追加同步支持
增量同步 - 去重历史不支持
命名空间支持
SSH隧道连接支持

输出模式

每个数据流将输出到MySQL中它自己的表中。每个表将包含3列:

  • _daspire_ab_id:Daspire分配给每个处理事件的uuid MySQL中的列类型是VARCHAR(256)

  • _daspire_emitted_at:表示事件何时从数据源中提取的时间戳。MySQL中的列类型是TIMESTAMP(6)

  • _daspire_data:表示事件数据的json blob。MySQL中的列类型是 JSON

设置指南

在Daspire中设置MySQL目的地之前,您需要将local_infile系统变量设置为true。您可以通过具有SYSTEM_VARIABLES_ADMIN权限的用户,使用SET GLOBAL local_infile = true这个操作运行。这是必需的,因为Daspire使用LOAD DATA LOCAL INFILE将数据加载到表中。

默认JDBC URL参数

以下JDBC URL参数由Daspire设置,不能被jdbc_url_params字段覆盖:

  • useSSL=true(除非ssl设置为false)
  • requireSSL=true(除非ssl设置为false)
  • verifyServerCertificate=false(除非ssl设置为false)
  • zeroDateTimeBehavior=convertToNull

限制

请注意,MySQL文档使用lower_case_table_names系统变量讨论标识符区分大小写。他们的建议之一是:

“最好采用一致的约定,例如始终使用小写名称创建和引用数据库和表。建议使用此约定以获得最大的便携性和易用性。”
("It is best to adopt a consistent convention, such as always creating and referring to databases and tables using lowercase names.
This convention is recommended for maximum portability and ease of use.")

数据源:MySQL文档

因此,Daspire MySQL目的地强制所有标识符(表、模式和列)名称为小写。

通过SSH隧道连接

Daspire能够通过SSH隧道连接到MySQL实例。您可能想要这样做的原因是不可能(或违反安全策略)直接连接到数据库(例如,它没有公共IP地址)。

使用SSH隧道时,您正在配置Daspire以连接到可以直接访问数据库的中间服务器(也称为堡垒服务器)。Daspire连接到堡垒,然后要求堡垒直接连接到服务器。

使用此功能需要在创建目标时进行额外配置。我们将讨论每个配置的含义。

  1. 像往常一样配置目的地的所有字段,SSH隧道方式除外。

  2. SSH隧道方式默认为无隧道(即直接连接)。如果您想使用SSH隧道,请选择SSH密钥认证密码认证

  • 如果您将使用RSA私钥作为建立SSH隧道的秘密,请选择密钥认证(有关生成此密钥的更多信息,请参见下文)。

  • 如果您将使用密码作为建立SSH隧道的秘密,请选择密码认证

  1. SSH隧道跳转服务器主机是指Daspire将要连接的中间(堡垒)服务器。这应该是主机名或IP地址。

  2. SSH连接端口是堡垒服务器上建立SSH连接的端口。SSH连接的默认端口是22,因此除非您明确更改了某些内容,否则请使用默认端口。

  3. SSH登录用户名是Daspire在连接到堡垒服务器时应该使用的用户名。这不是MySQL用户名。

  4. 如果您使用密码认证,则SSH登录用户名应设置为上一步用户的密码。如果您使用的是SSH密钥认证,请将此留空。同样,这不是MySQL密码,而是Daspire用来在堡垒上执行命令的操作系统用户的密码。

  5. 如果您使用SSH密钥认证,则SSH私有密钥应设置为您用于创建SSH连接的RSA私钥。这应该是以-----BEGIN RSA PRIVATE KEY-----开头并以-----END RSA PRIVATE KEY-----结尾的密钥文件的完整内容。