全部产品
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
数据集成

Redis通过数据集成导入数据

更新时间:2017-08-29 18:38:14

简介

数据集成(Data Integration)是阿里集团对外提供的可跨异构数据存储系统的、可靠、安全、低成本、可弹性扩展的数据同步平台,为20+种数据源提供不同网络环境下的离线(全量/增量)数据进出通道。详细的数据源类型列表请参见:支持数据源类型。所以用户可以通过数据集成(Data Integration)向云产品 Redis 进行数据导入

使用场景

  • 可以通过数据集成的同步任务将处理好的其他数据源数据同步到 Redis。

准备工作

  1. 开通阿里云官网实名认证账号,并且创建好账号的访问秘钥,即 AccessKeys。
  2. 开通 MaxCompute,这样会自动产生一个默认的 ODPS 的数据源,并使用主账号登录大数据开发套件。
  3. 创建项目,用户可以在项目中协作完成工作流,共同维护数据和任务等,因此使用大数据开发套件之前需要先创建一个项目。
  4. 如您想通过子账号创建数据集成任务,可以赋予其相应的权限。关于上面的准备工作内容可以参考下面文档:开通阿里云主账号准备RAM子账号根据这个两个文档,可以完成数据同步的全部准备工作。

流程概述:

liu3.jpg | center

步骤1:数据源端新建表
步骤2:新添加数据源
步骤3:脚本模式配置同步任务
步骤4:运行同步任务,检查目标端的数据质量

步骤 1:数据源端新建表

如何为数据源创建表可以使用建表语句,也可以直接通过客户端建表,所以不同的数据源可以参考相应的数据库的官方文档创建表格。

步骤2:新添加数据源

下面以添加 Redis 的数据源为例:Redis 是文档型的 NoSQL 数据库,提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。Redis 数据源提供了 读取 和 写入 Redis 双向通道的能力,可以通过脚本模式配置同步任务 。

项目管理员创建 Redis 数据源,具体步骤如下:

  1. 以开发者身份进入 大数据开发套件管理控制台,单击对应项目操作栏中的 进入工作区

  2. 单击顶部菜单栏中的 数据集成,导航至 数据源 页面。

  3. 单击 新增数据源

  4. 在新建数据源弹出框中,选择数据源类型为 Redis。

  5. 配置 Redis 数据源的各个信息项,如下图所示:

    1

    数据源类型分为:阿里云数据库和有公网 IP 的自建数据库。

    • 阿里云数据库:一般使用的网络是经典网络类型,同地区的经典网络能连通,跨地区的经典网络连接不保证能通。

    • 有公网 IP 的自建数据库:一般使用的网络是公网,然而公网可能产生一定的费用。

    注意:

    您尚未授权数据集成系统默认角色,需要主账号前往 RAM进行角色授权。

    以选择 Redis > 阿里云数据库 类型的数据源为例,如下图所示:

    1

    配置说明:

    • 数据源名称: 由英文字母、数字、下划线组成且需以字符或下划线开头,长度不超过 60 个字符。
    • 数据源描述: 对数据源进行简单描述,不得超过 80 个字符。

    • 数据源类型:当前选择的数据源类型 Redis:阿里云数据库。

    • 地区:是指在购买 Redis 时所选的区域。

    • Redis 实例 ID:Redis 管控台里面可以找到 Redis 实例 ID。

    • 密码:Redis Server 的访问密码,如果没有则可以不填。

    以选择 Redis > 有公网 IP 的自建数据库类型的数据源为例,如下图所示:

    1

    配置项说明:

    • 数据源名称: 由英文字母、数字、下划线组成且需以字符或下划线开头,长度不超过 60 个字符。
    • 数据源描述: 对数据源进行简单描述,不得超过 80 个字符。

    • 数据源类型:当前选择的数据源类型 Redis:阿里云数据库和有公网 IP 的自建数据库。

    • 服务地址:格式为:host:port 。

    • 添加访问地址:添加访问地址,格式为:host:port 。

    • 密码:数据库对应的用户名和密码。

  6. 单击 测试连通性

  7. 测试连通性通过后,单击 确定

    其他的数据源的配置请参见:数据源配置

步骤3:脚本模式配置同步任务

  1. 以项目管理员身份进入数加管理控制台,点击大数据开发套件下对应项目操作栏中的进入工作区
    1
  2. 进入顶部菜单栏中的数据集成页面,选择脚本模式,如下图;
    k01.jpg | center向导模式:向导模式是可视化界面配置同步任务, 一共涉及到五步,选择来源,选择目标,字段映射,通道控制,预览保存。在每个不同的数据源之间,这几步的界面可能有不同的内容,向导模式可以转换成脚本模式。此处Redis是不支持向导模式,要了解数据同步支持的数据源都支持什么模式可以参考文档:支持的数据源类型
    脚本模式:进入脚本界面你可以选择相应的模板,此模板包含了同步任务的主要参数,将相关的信息填写完整,但是脚本模式不能转化成向导模式。
    3、在弹出的“导入模板”中选择自己需要的“来源类型”和“目标类型”,如下图所示:
    14、点击确认后即进入脚本模式配置页面,可根据自身情况进行配置,如有问题可点击右上方的帮助手册进行查看,如下图所示:1

  3. RedisWriter脚本案例

    1. {
    2. "type": "job",
    3. "configuration": {
    4. "setting": {
    5. "speed": {
    6. "concurrent": "1",//并发数
    7. "mbps": "1"//同步能达到的最大数率
    8. },
    9. "errorLimit": {
    10. "record": "0"
    11. }
    12. },
    13. "reader": {
    14. "parameter": {
    15. "splitPk": "id",//切分键
    16. "column": [
    17. "id",
    18. "name",
    19. "year"
    20. ],
    21. "table": "person",//表名
    22. "where": "",//
    23. "datasource": "px_mysql"//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
    24. },
    25. "plugin": "mysql"
    26. },
    27. "writer": {
    28. "parameter": {
    29. "expireTime": {
    30. "seconds": "1000"//相对当前时间的秒数,该时间指定了从现在开始多长时间后数据失效
    31. },
    32. "keyFieldDelimiter": "\u0001",//写入 redis 的 key 分隔符。比如: key=key1\u0001id,如果 key 有多个需要拼接时,该值为必填项,如果 key 只有一个则可以忽略该配置项。
    33. "writeMode": {
    34. "valueFieldDelimiter": "\u0001",//value 类型是 string 时,value 之间的分隔符,比如 value1\u0001value2\u0001value3;
    35. "type": "string",//value类型
    36. "mode": "set"//写入的模式,存储这个数据,如果已经存在则覆盖
    37. },
    38. "batchSize": "1000",//一次性批量提交的记录数大小
    39. "dateFormat": "yyyy-MM-dd HH:mm:ss",//时间格式
    40. "keyIndexes": [
    41. 0,
    42. 1
    43. ],//keyIndexes 表示源端哪几列需要作为 key(第一列是从 0 开始),如果是第一列和第二列需要组合作为 key,那么 keyIndexes 的值则为 [0,1]。
    44. "datasource": "px_redis_datasource"//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
    45. },
    46. "plugin": "redis"
    47. }
    48. },
    49. "version": "1.0"
    50. }

步骤4:运行同步任务,检查目标端的数据质量

  1. 运行结果:r01.jpg

注意:同步任务保存后,直接点击运行任务会立刻运行或点击右边的提交,将同步任务提交到调度系统中,调度系统会按照配置属性在从第二天开始自动定时执行,相关调度的配置请参考下面的文档:调度配置介绍

其他数据源的reader和writer插件,参考下面文档:

本文导读目录