MemSQL Fast Loader

支持的管道类型:

  •  Data Collector

MemSQL Fast Loader目标端使用JDBC连接通过LOAD语句将数据插入到MemSQL或MySQL数据库表中。

在将数据插入MemSQL或MySQL的管道中,可以使用MemSQL Fast Loader目标端而不是JDBC Producer目标端来提高性能。但是,在更新或删除数据的管道中,必须使用JDBC Producer目标端。MemSQL快速加载程序目标端不处理CDC记录;目标端将错误处理应用于头属性中具有CDC操作的记录。

要配置MemSQL Fast Loader目标端,请指定连接信息,表名,并可以选择定义驱动程序需要的字段映射和其他属性。默认情况下,MemSQL Fast Loader目标端根据匹配的字段名称将数据写入表。您可以通过定义特定的映射来覆盖默认字段映射。要使用低于4.0的JDBC版本,可以指定驱动程序类名称并定义运行状况检查查询。

在使用MemSQL Fast Loader目标端之前,必须安装MemSQL阶段库并完成其他先决任务。MemSQL阶段库是一个企业版阶段库,仅供开发用途免费。有关购买用于生产的阶段库的信息,请联系StreamSets。

先决条件

在使用MemSQL Fast Loader目标端之前,请完成以下先决条件:

  • 安装MemSQL阶段库。
  • 要将MemSQL Fast Loader与MySQL或MemSQL数据库一起使用,请安装MySQL的JDBC驱动程序。
  • 要将MemSQL Fast Loader与MySQL数据库一起使用,必须在MySQL中启用本地数据加载。参见MySQL主题Security Issues with LOAD DATA LOCAL

安装MemSQL阶段库

在使用MemSQL Fast Loader目标端之前,您必须安装MemSQL阶段库。

MemSQL阶段库是一个企业版阶段库,仅供开发用途免费。有关购买用于生产的阶段库的信息,请联系StreamSets。

您可以使用Package Manager来安装企业版阶段库以进行tarball Data Collector的安装,也可以将其作为定制阶段库来进行tarball,RPM或Cloudera Manager Data Collector的 安装。

支持的版本

下表列出了与特定的Data Collector 版本一起使用的MemSQL Enterprise阶段库的版本:

Data Collector Version Supported Stage Library Version
Data Collector 3.8.x and later MemSQL Enterprise Library 1.0.1
Data Collector 3.7.x MemSQL Enterprise Library 1.0.0

使用软件包管理器安装

您可以使用Package Manager在tarball Data Collector 安装中安装MemSQL阶段库。

  1. 单击包管理器图标:
  2. 在导航面板中,单击Enterprise Stage Libraries
  3. 选择MemSQL企业库,然后单击安装图标:
  4. 阅读StreamSets 订阅服务条款。如果您同意,请选中复选框,然后单击“Install
    Data Collector将安装所选的阶段库。
  5. 重新启动Data Collector

作为自定义阶段库安装

您可以在tarball,RPM或Cloudera Manager Data Collector 安装中将MemSQL Enterprise阶段库安装为自定义阶段库。

  1. 要下载阶段库,请转到StreamSets下载企业连接器页面。
    该网页显示按发布日期组织的企业版阶段库,并在页面顶部显示最新版本。
  2. 单击您想要下载的企业版阶段库名称和版本。
  3. 在“Download Enterprise Connectors表单中,输入您的姓名和联系信息。
  4. 阅读StreamSets订阅服务条款。如果您同意,请接受服务条款,然后单击“Submit
    阶段库下载。
  5. 将企业版阶段库安装和管理为自定义阶段库。
    有关更多信息,请参见Custom Stage Libraries。

安装用于MemSQL Fast Loader的JDBC驱动程序

MemSQL Fast Loader目标端要求您安装MySQL的JDBC驱动程序。无论使用的是MemSQL还是MySQL,都应为MySQL安装JDBC驱动程序。在安装此驱动程序之前,目标无法访问MemSQL或MySQL数据库。

注意: StreamSets已使用带有MySQL Connector/J 8.0.12驱动程序的MemSQL 6.5.16测试了目标。
  1. 下载用于MySQL的JDBC驱动程序。
    您可以在MySQL网站的 Download Connector/J页面上下载驱动程序。
  2. 将驱动程序安装为MemSQL Enterprise阶段库的外部库。
    有关安装其他驱动程序的信息,请参阅“安装外部库”。

配置MemSQL Fast Loader目标端

配置MemSQL Fast Loader目标端,以使用JDBC将数据插入到MemSQL或MySQL数据库表中。不要使用此目标端来更新或删除数据,或处理CDC记录。

在管道中使用MemSQL Fast Loader目标之前,请完成所需的先决条件。

  1. 在“Properties”面板的“General选项卡上,配置以下属性:
    一般属性 描述
    Name 阶段名。
    Description 可选说明。
    Required Fields 必须包含用于将记录传递到阶段的记录的数据的字段。

    提示:您可能包括阶段使用的字段。

    根据为管道配置的错误处理,处理不包括所有必填字段的记录。

    Preconditions 必须评估为TRUE的条件才能使记录进入处理阶段。单击 添加以创建其他前提条件。

    根据为该阶段配置的错误处理,处理不满足所有前提条件的记录。

    On Record Error 该阶段的错误记录处理:

    • Discard-放弃记录。
    • To Error-将记录发送到管道以进行错误处理。
    • Stop Pipeline-停止管道。对集群管道无效。
  2. 在“JDBC”选项卡上,配置以下属性:
    JDBC属性 描述
    JDBC Connection String 用于连接数据库的连接字符串。
    Use Credentials 在“Credentials”选项卡上启用输入凭据。在JDBC连接字符串中不包括凭据时使用。
    Schema Name 要使用的可选数据库或模式名称。

    当数据库需要标准表名时使用。

    Table Name 要使用的数据库表名称。使用数据库所需的表名格式。
    Field to Column Mapping 用于覆盖默认字段到列的映射。默认情况下,字段被写入具有相同名称的列。

    覆盖映射时,可以定义参数化的值,以在将SQL函数写入字段值之前将SQL函数应用于字段值。例如,要将字段值转换为整数,请为参数化值输入以下内容:

    CAST(? AS INTEGER)

    问号(?)替换为字段的值。保留默认值?如果您不需要应用SQL函数。

    使用简单或批量编辑模式,单击添加图标以创建其他字段到列的映射。

    Duplicate-key Error Handling 记录重复表中行的主键时要采取的措施:

    • Ignore–丢弃记录并保留现有行。
    • Replace–用记录覆盖现有行。
    Additional JDBC Configuration Properties 要使用的其他JDBC配置属性。要添加属性,请单击“添加”并定义JDBC属性名称和值。

    使用JDBC期望的属性名称和值。

  3. 要与JDBC连接字符串分开输入JDBC凭据,请在“Credentials选项卡上配置以下属性:
    凭据属性 描述
    Username JDBC连接的用户名。
    Password JDBC帐户的密码。

    提示: 要保护敏感信息(例如用户名和密码),可以使用运行时资源或凭据存储。
  4. 使用低于4.0的JDBC版本时,在“Legacy Drivers选项卡上,可以选择配置以下属性:
    旧版驱动程序属性 描述
    JDBC Class Driver Name JDBC驱动程序的类名。早于版本4.0的JDBC版本是必需的。
    Connection Health Test Query 可选查询,用于测试连接的运行状况。仅当JDBC版本低于4.0时才建议使用。
  5. 在“Advanced选项卡上,可以选择配置高级属性。

    这些属性的默认值在大多数情况下都应该起作用:

    高级属性 描述
    Maximum Pool Size 创建的最大连接数。

    默认值为1。建议值为1。

    Minimum Idle Connections 创建和维护的最小连接数。要定义固定连接池,请设置为与“Maximum Pool Size”相同的值。

    默认值为1。

    Connection Timeout 等待连接的最长时间。在表达式中使用时间常数来定义时间增量。

    默认值为30秒,定义如下:

    ${30 * SECONDS}
    Idle Timeout 允许连接空闲的最长时间。在表达式中使用时间常数来定义时间增量。

    使用0以避免删除任何空闲连接。

    当输入的值接近或超过连接的最大生存期时,Data Collector将忽略空闲超时。

    默认值为10分钟,定义如下:

    ${10 * MINUTES}
    Max Connection Lifetime 连接的最大寿命。在表达式中使用时间常数来定义时间增量。

    使用0设置最大寿命。

    设置最大寿命时,最小有效值为30分钟。

    默认值为30分钟,定义如下:

    ${30 * MINUTES}
    Transaction Isolation 用于连接到数据库的事务隔离级别。

    默认是为数据库设置的默认事务隔离级别。您可以通过将级别设置为以下任意值来覆盖数据库默认值:

    • Read committed
    • Read uncommitted
    • Repeatable read
    • Serializable
    Init Query 在阶段连接到数据库后立即执行的SQL查询。用于根据需要设置数据库会话。

    例如,以下查询为MySQL数据库设置会话的时区: SET time_zone = timezone;