集成MySQL数据至知识库

通过创建数据源,将阿里云数据库RDS实例(MySQL引擎)或您自建MySQL中指定数据表里的数据同步到您的结构化知识库中。

操作步骤

使用RDS MySQL

  1. 访问阿里云百炼的知识库界面,单击创建知识库

  2. 输入知识库名称知识库描述数据类型选择结构化数据,然后单击下一步

  3. 数据来源选择关联RDS数据源类型选择阿里云RDS MySQL

    RDS实例限制:目前只支持MySQL引擎(版本无限制),暂不支持PostgreSQL等其它引擎;实例地域不限;只支持基础系列高可用系列(暂不支持开启数据库代理);创建RDS实例时,网络类型必须是专有网络,加入白名单需选(将VPC网段加入到RDS实例白名单中)。
    数据库和表限制:知识库只能关联单个数据库中的一张表,不支持多表关联;关联表中的数据量最大为1000万行,且每一行记录的大小必须控制在100KB以内。若最大行数限制无法满足实际业务需求,您可以提交阿里云工单申请调整。
  4. 网络类型选择公网私网,然后单击新建数据源

    新建数据源前需开通阿里云事件总线EventBridge服务,否则保存数据源时会提示Service not enable
    阿里云百炼与RDS实例必须归属同一阿里云账号;否则请选择自建MySQL(并将RDS视作公网数据源),绕过此限制。
    私网数据源仅支持部分地域RDS实例;其他地域请选择公网数据源。私网数据源在安全性和性能方面更具优势。

    新建公网数据源

    1. 为确保知识库能正常接收RDS数据,请为RDS实例设置EventBridge白名单。

      若未正确设置白名单,保存数据源时会提示Communications link failure

      如何设置EventBridge白名单

      1. 访问RDS控制台,单击左侧导航栏中的实例列表,然后单击包含数据表的RDS实例。接着,单击左侧导航栏中的数据库连接,单击外网地址旁的设置白名单image

      2. 单击添加白名单分组,并将以下 EventBridge 公网 IP 地址全部添加至白名单分组中。

        • 39.105.55.188,39.105.110.43,47.95.35.213,47.95.33.100,39.106.255.198,47.93.177.159,47.95.32.154,39.107.99.72

      3. 单击确定,白名单生效。

    2. 填写新建数据源配置。其中,关于数据源名称与地址的说明如下:

      配置项

      说明

      数据源名称

      数据源名称在同一个业务空间中应是唯一的。即使数据源创建失败,该名称也无法再次使用。

      数据库实例

      填写RDS实例ID。请前往RDS控制台,单击左侧导航栏中的实例列表获取。

      数据库地址

      填写RDS实例的外网地址。您可以在RDS实例的数据库连接界面获取该信息:前往RDS控制台,单击左侧导航栏中的实例列表,然后单击包含数据表的RDS实例。接着,单击左侧导航栏中的数据库连接,即可查看该实例对应的外网地址

      若该 RDS 实例未开通外网地址,请先按照界面指引完成 RDS 外网地址开通。

      image

      数据库端口

      填写RDS实例的外网端口。该信息同样可以在RDS实例的数据库连接界面获取。

      数据库用户名

      数据库账号类型需为高权限账号,关于账号说明和获取方式请参见创建账号

      使用普通账号保存数据源时会提示There is no permission:RELOAD
    3. 单击保存数据源,提交新建任务系统将为您自动配置RDS数据源,期间当前业务空间会被锁定,禁止同时创建其他数据源。

      首次提交任务时,请根据界面指引开通EventBridge服务关联角色,请使用主账号操作。如需使用RAM用户,需主账号为该RAM用户配置必要权限
      在请求高峰时段,创建数据源过程可能需要几分钟,请耐心等待。

      状态

      说明

      创建成功

      表示数据源创建成功。请选择该数据源并执行下一步

      创建失败

      表示数据源创建失败。请检查各项参数是否正确,修改后单击重试重新创建数据源。您可单击删除,删除创建失败的数据源。

    新建私网数据源

    1. 填写新建数据源配置。

      配置项

      说明

      数据源名称

      数据源名称在同一个业务空间中应是唯一的。即使数据源创建失败,该名称也无法再次使用。

      所属地域

      选择RDS实例所在地域。请前往RDS控制台,单击左侧导航栏中的实例列表获取。

      数据库实例

      填写RDS实例ID。请前往RDS控制台,单击左侧导航栏中的实例列表获取。

      数据库地址

      填写RDS实例的内网地址。您可以在RDS实例的数据库连接界面获取该信息:前往RDS控制台,单击左侧导航栏中的实例列表,然后单击包含数据表的RDS实例。接着,单击左侧导航中的数据库连接,即可查看该实例对应的内网地址

      image

      数据库端口

      填写RDS实例的内网端口。该信息同样可以在RDS实例的数据库连接界面获取。

      数据库用户名

      数据库账号类型需为高权限账号,关于账号说明和获取方式请参见创建账号

      使用普通账号保存数据源时会提示There is no permission:RELOAD

      VPC ID

      应填写RDS实例的VPC ID。该信息同样可以在RDS实例的数据库连接界面获取。

      image

      VSwitch IDs

      将鼠标悬浮于RDS实例的VPC ID上即可显示VSwitch ID。

      RDS MySQL高可用系列实例可能拥有多个 VSwitch ID,请完整填写该实例关联的所有 VSwitch ID。

      image

      安全组ID

      该安全组应为直接创建,非由第三方产品或服务间接创建。您可以前往ECS控制台安全组界面创建安全组。该安全组需满足以下要求:

      • 安全组的地域需与上方所属地域保持一致;

      • 安全组的网络需选择RDS所在的VPC;

        image

      • 安全组类型支持普通安全组和企业级安全组。

      • 安全组的网络入方向未设置任何访问限制;

        • 正确示例:

          image

        • 错误示例:image

    2. 单击保存数据源,提交新建任务系统将为您自动配置RDS数据源,期间当前业务空间会被锁定,禁止同时创建其他数据源。

      首次提交任务时,请根据界面指引开通EventBridge服务关联角色,请使用主账号操作。如需使用RAM用户,需主账号为该RAM用户配置必要权限
      在请求高峰时段,创建数据源过程可能需要几分钟,请耐心等待。

      状态

      说明

      创建成功

      表示数据源创建成功。请选择该数据源并执行下一步

      创建失败

      表示数据源创建失败。请检查各项参数是否正确,修改后单击重试重新创建数据源。您可单击删除,删除创建失败的数据源。

使用自建MySQL

  1. 访问阿里云百炼的知识库界面,单击创建知识库

  2. 输入知识库名称知识库描述数据类型选择结构化数据,然后单击下一步

  3. 数据来源选择关联RDS数据源类型选择自建MySQL

    自建MySQL限制:必须部署在阿里云ECS实例(地域不限)上;目前只支持MySQL 5.6、5.78.0;不支持MySQL代理Proxy。
    数据库和表限制:知识库只能关联单个数据库中的一张表,不支持多表关联;关联表中的数据量最大为1000万行,且每一行记录的大小必须控制在100KB以内。若最大行数限制无法满足实际业务需求,您可以提交阿里云工单申请调整。
  4. 网络类型选择公网私网,然后单击新建数据源

    新建数据源前需开通阿里云事件总线EventBridge服务,否则保存数据源时会提示Service not enable
    私网数据源仅支持部分地域ECS实例;其他地域请选择公网数据源。私网数据源在安全性和性能方面更具优势。

    新建公网数据源

    1. 为确保知识库能正常接收数据,请为您的自建MySQL配置EventBridge白名单。

      若未正确配置白名单,保存数据源时会提示Communications link failure

      如何设置EventBridge白名单

      1. 访问ECS控制台,单击左侧导航栏中的安全组,找到与您自建MySQL关联的安全组,然后单击操作栏中的管理规则。

        image

      2. 在安全组详情页,单击增加规则,将以下EventBridge公网IP地址全部添加至该安全组中,并且需要放行所有流量全部端口

        不可使用由第三方产品或服务间接创建的安全组。
        • 39.105.55.188,39.105.110.43,47.95.35.213,47.95.33.100,39.106.255.198,47.93.177.159,47.95.32.154,39.107.99.72

        image

      3. 单击确定,安全组生效。

      4. 在您的MySQL中,创建一个允许全部来源流量的数据库账号(也可以使用已有账号)然后执行以下GRANT授权命令。

        请根据您的实际情况,将下方命令中的user1替换为您的实际数据库账号。
        -- 创建用户(合并为单条语句),请将user1替换为您的实际数据库账号
        CREATE USER 'user1'@'%' IDENTIFIED BY 'user1的密码';
        
        -- 授予基础权限(合并为单条语句),请将user1替换为您的实际数据库账号
        GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' WITH GRANT OPTION;
        
        -- 刷新权限(仅需一次)
        FLUSH PRIVILEGES;
      5. 通过修改MySQL配置文件开启BinlogGTID。以Linux系统为例,MySQL配置文件一般位于:/etc/my.cnf 或 /etc/mysql/my.cnf。

        [mysqld]
        log-bin=mysql-bin
        server-id=1
        binlog_format=ROW
        gtid_mode=ON
        enforce_gtid_consistency=ON
      6. 重启MySQL,配置文件生效。

    2. 填写新建数据源配置。

      配置项

      说明

      数据源名称

      数据源名称在同一个业务空间中应是唯一的。即使数据源创建失败,该名称也无法再次使用。

      数据库地址

      填写您自建MySQL的公网地址。

      数据库端口

      填写您自建MySQL的端口。

      数据库用户名

      填写您在前面加白步骤中执行过GRANT授权的数据库账号。

    3. 单击保存数据源,提交新建任务系统将为您自动配置自建MySQL数据源,期间当前业务空间会被锁定,禁止同时创建其他数据源。

      首次提交任务时,请根据界面指引开通EventBridge服务关联角色,请使用主账号操作。如需使用RAM用户,需主账号为该RAM用户配置必要权限
      在请求高峰时段,创建数据源过程可能需要几分钟,请耐心等待。

      状态

      说明

      创建成功

      表示数据源创建成功。请选择该数据源并执行下一步

      创建失败

      表示数据源创建失败。请检查各项参数是否正确,修改后单击重试重新创建数据源。您可单击删除,删除创建失败的数据源。

    新建私网数据源

    1. 为确保知识库能正常接收数据,请为您的自建MySQL配置EventBridge白名单。

      若未正确配置白名单,保存数据源时会提示Communications link failure

      如何设置EventBridge白名单

      1. 在您的MySQL中,创建一个允许全部来源流量的数据库账号(也可以使用已有账号)然后执行以下GRANT授权命令。

        请根据您的实际情况,将下方命令中的user1替换为您的实际数据库账号。
        -- 创建用户(合并为单条语句),请将user1替换为您的实际数据库账号
        CREATE USER 'user1'@'%' IDENTIFIED BY 'user1的密码';
        
        -- 授予基础权限(合并为单条语句),请将user1替换为您的实际数据库账号
        GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' WITH GRANT OPTION;
        
        -- 刷新权限(仅需一次)
        FLUSH PRIVILEGES;
      2. 通过修改MySQL配置文件开启BinlogGTID。以Linux系统为例,MySQL配置文件一般位于:/etc/my.cnf 或 /etc/mysql/my.cnf。

        [mysqld]
        log-bin=mysql-bin
        server-id=1
        binlog_format=ROW
        gtid_mode=ON
        enforce_gtid_consistency=ON
      3. 重启MySQL,配置文件生效。

    2. 填写新建数据源配置。

      配置项

      说明

      数据源名称

      数据源名称在同一个业务空间中应是唯一的。即使数据源创建失败,该名称也无法再次使用。

      所属地域

      请选择您自建MySQL所部署ECS实例所在地域。该信息可以前往ECS控制台获取。

      数据库地址

      填写您自建MySQL私网地址。您可以在ECS实例界面获取该信息:前往ECS控制台,单击左侧导航栏中的实例,即可查看对应实例的私网地址

      image

      数据库端口

      填写您自建MySQL的端口。

      数据库用户名

      填写您在前面加白步骤中执行过GRANT授权的数据库账号。

      VPC ID

      填写您自建MySQL所部署ECS实例所在VPC实例ID(vpc-xxxxxx)。该信息同样可以前往ECS控制台获取。

      image

      VSwitch IDs

      实例VPC ID下方即是VSwitch ID(vsw-xxxxxx)。

      image

      安全组ID

      该安全组应为直接创建,非由第三方产品或服务间接创建。您可以前往ECS控制台安全组界面创建安全组。该安全组需满足以下要求:

      • 安全组的地域需与上方所属地域保持一致;

      • 安全组的网络需选择ECS所在的VPC;

        image

      • 安全组类型支持普通安全组和企业级安全组。

      • 入方向未设置任何访问限制;

        • 正确示例:

          image

        • 错误示例:image

    3. 单击保存数据源,提交新建任务系统将为您自动配置MySQL数据源,期间当前业务空间会被锁定,禁止同时创建其他数据源。

      首次提交任务时,请根据界面指引开通EventBridge服务关联角色,请使用主账号操作。如需使用RAM用户,需主账号为该RAM用户配置必要权限
      在请求高峰时段,创建数据源过程可能需要几分钟,请耐心等待。

      状态

      说明

      创建成功

      表示数据源创建成功。请选择该数据源并执行下一步

      创建失败

      表示数据源创建失败。请检查各项参数是否正确,修改后单击重试重新创建数据源。您可单击删除,删除创建失败的数据源。

下一步

基于已创建的数据源,配置结构化知识库的索引。具体操作请参见知识库:创建知识库中的“索引配置”部分。

计费说明

  • 新建数据源功能本身不收费。

  • 阿里云数据库RDS和阿里云百炼知识库之间的数据同步通过阿里云事件总线EventBridge服务实现,您需要支付相关的费用。关于EventBridge服务的费用详情,请参见计费概述

常见问题

私网数据源支持哪些地域的RDSECS实例?

  • 华东1(杭州)

  • 华东2(上海)

  • 华南1(深圳)

  • 华南2(河源)

  • 华南3(广州)

  • 华北1(青岛)

  • 华北2(北京)

  • 华北3(张家口)

  • 华北5(呼和浩特)

  • 华北6(乌兰察布)

  • 西南1(成都)

我想使用RAM用户开通EventBridge服务关联角色,应如何为该RAM用户配置权限?

  1. 主账号为RAM用户配置如下三个系统策略:AliyunBailianFullAccessAliyunEventBridgeFullAccessAliyunRDSReadOnlyAccess。具体操作请参考RAM用户授权

  2. 主账号为RAM用户配置创建服务关联角色系统策略。

    1. 使用主账号登录RAM控制台,在左侧导航栏,选择权限管理 > 权限策略,然后单击页面上的创建权限策略

    2. 脚本编辑EffectActionResourceCondition中分别输入以下脚本中的对应内容后,单击确定

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": "ram:CreateServiceLinkedRole",
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    3. 输入权限策略名称CreateServiceLinkedRole后,单击确定

    4. 在左侧导航栏,选择身份管理 > 用户。从页面列表中找到待授权的子账号,然后单击子账号操作列的添加权限

    5. 权限策略列表中,选择刚创建的权限策略(CreateServiceLinkedRole),然后单击确认新增授权。至此,子账号拥有了创建服务关联角色的权限。

  3. 完成以上步骤12后,返回新建数据源界面,使用RAM用户再尝试开通EventBridge服务关联角色

系统提示“数据库配置校验不通过,您选择的表数据量较大”,应如何处理?

阿里云RDS MySQL

image

上方仅为示意图,提示中的建议项和建议值会根据您表中数据量不同而不同。若无对应建议项,则无需调整。

以下步骤请使用阿里云账号(主账号)操作。

  • 如何配置本地日志保留时长:

    1. 前往RDS控制台,单击左侧导航栏中的实例列表,然后单击包含该数据表的RDS实例。接着单击左侧导航栏中的备份恢复,再单击备份策略选项卡,即可看到保留时长设置项。

      image

    2. 修改保留时长为提示中提供的建议值。

  • 如何配置wait_timeout:

    1. 前往RDS控制台,单击左侧导航栏中的实例列表,然后单击包含数据表的RDS实例。接着单击左侧导航栏中的参数设置,再单击可修改参数选项卡,即可看到wait_timeout设置项。

      image

    2. 改为提示中提供的建议值。

自建MySQL

image

仅为示意图,提示中的建议项和建议值会根据您表中数据量不同而不同。若无对应建议项,则无需调整。
  • 如何设置本地日志保留时长:

    • 方式一(临时生效):通过执行SET GLOBAL命令修改expire_logs_days(单位是天),该修改将在下次MySQL重启后失效。

      1. 执行命令:

        请将下方参数值 15 替换为提示中提供的建议值。
        SET GLOBAL expire_logs_days = 15; 
      2. 验证修改是否已生效,执行命令:

        SHOW VARIABLES LIKE 'expire_logs_days';
    • 方式二(永久生效):通过MySQL配置文件设置expire_logs_days(单位是天),但该方式需重启MySQL服务。

      1. Linux系统为例,MySQL配置文件一般位于:/etc/my.cnf 或 /etc/mysql/my.cnf。若文件中已包含expire_logs_days,可直接修改;若不存在,请手动添加。

        请将下方参数值 15 替换为提示中提供的建议值。
        [mysqld]
        expire_logs_days = 15
      2. 保存配置文件后,请您手动重启MySQL服务。

      3. 验证修改是否已生效,执行命令:

        SHOW VARIABLES LIKE 'expire_logs_days';
  • 如何设置wait_timeout:

    • 方式一(临时生效):通过执行SET GLOBAL命令修改wait_timeout(单位是秒),该修改将在下次MySQL重启后失效。

      1. 执行命令:

        请将下方参数值 1159200 替换为提示中提供的建议值。
        该命令将影响所有新建立的连接。已存在的连接不受此设置影响。
        SET GLOBAL wait_timeout = 1159200; 
      2. 验证修改是否已生效,执行命令:

        SHOW VARIABLES LIKE 'wait_timeout'; 
    • 方式二(永久生效):通过MySQL配置文件设置wait_timeout(单位是秒),但该方式需重启MySQL服务。

      1. Linux系统为例,MySQL配置文件一般位于:/etc/my.cnf 或 /etc/mysql/my.cnf。若文件中已包含wait_timeout,可直接修改;若不存在,请手动添加。

        请将下方参数值 1159200 替换为提示中提供的wait_timeout建议值。
        [mysqld]
        wait_timeout = 1159200
      2. 保存配置文件后,请您手动重启MySQL服务。

      3. 验证修改是否已生效,执行命令:

        SHOW VARIABLES LIKE 'wait_timeout';