全部产品
云市场

创建Redis表并读取数据

更新时间:2019-03-17 17:16:26

创建Redis表

CSV

针对Redis中CSV格式的数据,本示例在DMS for Data Lake Analytics中创建表dla_person_csv:

  1. CREATE EXTERNAL TABLE dla_person_csv (
  2. id int,
  3. name varchar,
  4. age int
  5. ) TBLPROPERTIES (
  6. COLUMN_MAPPING = 'id,0;name,1;age,2',
  7. TABLE_MAPPING = 'world_',
  8. format = 'csv'
  9. );
  • COLUMN_MAPPING:

    • DLA中的column与Redis中CSV数据的映射。

    • 由于Redis底层没有column的概念,因此具体映射的方法根据COLUMN_MAPPING的不同而不同。

      例如,本示例中CSV数据被解析之后形成一个string数组,对应的COLUMN_MAPPING映射到底层这个数组的index(下标)上: id映射到下标0,name映射到下标1,age映射到下标2。通过下面的读取Redis数据,您可以详细看见COLUMN_MAPPING效果。

  • TABLE_MAPPING:值为world_,结合在创建Redis Schema时指定的前缀hello_,最终将查询Redis中所有前缀为hello_world_的数据。

    也可以省略TABLE_MAPPING设置,则默认前缀跟表名一致,即查询的key的前缀为hello_dla_person_csv

JSON

针对Redis中JSON格式的数据,本示例在DMS for Data Lake Analytics创建外表dla_person_json:

  1. CREATE EXTERNAL TABLE dla_person_json (
  2. id int,
  3. name varchar,
  4. age int
  5. ) TBLPROPERTIES (
  6. COLUMN_MAPPING = 'id,age;name,name;age,id',
  7. TABLE_MAPPING = 'foo_',
  8. format = 'json'
  9. );
  • TABLE_MAPPING:值为foo_,结合在创建Redis Schema时指定的前缀hello_,最终将查询Redis中所有前缀为hello_foo_的数据。

  • COLUMN_MAPPING:DLA中的column与JSON中字段名的映射。id映射age,name映射到name,age映射到id。

读取Redis数据

CSV

读取dla_person_csv表数据:

  1. select * from dla_person_csv;
  2. +-------+------+------+
  3. | name | id | age |
  4. +-------+------+------+
  5. | lily | 3 | 30 |
  6. | lucy | 4 | 20 |
  7. | bond | 2 | 20 |
  8. | james | 1 | 10 |

JSON

读取dla_person_json表数据:

  1. select * from dla_person_json;
  2. +-------+------+------+
  3. | name | id | age |
  4. +-------+------+------+
  5. | lucy | 210 | 3 |
  6. | james | 110 | 1 |
  7. | bond | 210 | 2 |
  8. | lily | 310 | 3 |

接下来您可以通过MySQL客户端或者MySQL命令行工具连接DLA,使用标准SQL语句操作Redis数据库了。