全部产品
分析型数据库

1.4 导入数据

更新时间:2017-06-07 13:26:11   分享:   

分析型数据库支持多种接入数据的方式,您可以直接将数据通过insert/delete SQL写入实时表(详见使用手册第四章),或通过Kettle等ETL工具将本地文件写入分析型数据库,或是通过阿里云数据传输从阿里云RDS中实时同步数据变更(见使用手册8.5节),或者建立批量导入表从阿里云MaxCompute(原名ODPS)大批量的导入数据。

如果在建立表时选择数据来源是批量导入,则分析型数据库提供多种数据导入的方式,如通过data pipeline系列命令(详见5.1),等方式。在这里,作为测试使用,我们通过控制台界面进行数据导入。

在操作导入数据之前,我们需要对数据的来源表进行授权,例如数据的来源表在odps上,在公有云上则需要在ODPS上对 garuda_build@aliyun.com 与 garuda_data@aliyun.com 授予describe和select权限(各个专有云授权的账号名参照专有云的相关配置文档,不一定是这个账号)。另外要注意,分析型数据库目前仅允许操作者导入自身为Project Owner的ODPS Project中,或者操作者是ODPS表的Table Creator的数据。

进入DMS页面,选择菜单栏上的导入按钮,弹出导入对话框。这里我们的数据源表在阿里云ODPS上。因此数据导入路径按照 “odps://project_name/table_name/partition_spec” 的格式来填写。关于导入数据的分区信息,在仅有Hash分区的情况下iDB Cloud会帮我们自动识别并填写。填写完毕后,如下图所示,点击“确定”按钮。

P-1-4-1

之后页面会展示导入状态一览,分析型数据库会对导入任务进行调度,根据当前系统繁忙情况和待导入数据的大小和结构不同,二十分钟至数个小时内数据导入会结束。

如果建表时数据来源选择的是实时写入,那么则可以在建表后直接在SQL窗口中编写SQL:

  1. insert into my_first_table (user_id,amt,num,cat_id,thedate) values (12345, 80, 900, 1555, 20140101);

实时写入的表刚刚建立后,会有一分钟左右(公共云当前版本:0.9.*版本数据,若使用0.8版本的ADS一般为十五分钟左右)的准备时间,这时候写入的数据需要在准备完成后才能查询,否则查询会报错。在准备完成后,实时进行insert/delete的数据变更一般延迟一分钟内可查。

需要注意的是,分析型数据库进行实时插入和删除时,不支持事务,并且仅遵循最终一致性的设计,所以分析型数据库并不能作为OLTP系统使用。

若表的数据是离线批量导入,但是数据源是RDS等其它的云上系统,那么我们可以通过阿里云的CDP产品进行数据同步,在 http://www.aliyun.com/product/cdp/ 上开通CDP(可能需要申请公测)后,按照如下示例配置同步Job:

  1. {
  2. "type": "job",
  3. "traceId": "rds to ads job test",
  4. "version": "1.0",
  5. "configuration": {
  6. "setting": {
  7. },
  8. "reader": {
  9. "plugin": "mysql",
  10. "parameter": {
  11. "instanceName": "你的RDS的实例名",
  12. "database": "RDS数据库名",
  13. "table": "RDS表名",
  14. "splitPk": "任意一个列的名字",
  15. "username": "RDS用户名",
  16. "password": "RDS密码",
  17. "column": ["*"],
  18. }
  19. },
  20. "writer": {
  21. "plugin": "ads",
  22. "parameter": {
  23. "url": "在分析型数据库的控制台中选择数据库时提供的连接信息",
  24. "schema": "分析型数据库数据库名",
  25. "table": "分析型数据库表名",
  26. "username": "你的access key id",
  27. "password": "你的access key secret",
  28. "partition": "",
  29. "lifeCycle": 2,
  30. "overWrite": true
  31. }
  32. }
  33. }
  34. }

需要注意的是,在运行这个任务之前,需要在分析型数据库中对cloud-data-pipeline@aliyun-inner.com 至少授予表的Load Data权限。

若表是实时写入的,但是仍需要通过数据集成CDP从其他数据源导入到分析型数据库中,则>上述reader配置不变,但是writer配置需要变为(以原表列和目标表列相同为例,若不同需要在column选项中配置Mapping):

  1. "writer": {
  2. "name": "adswriter",
  3. "parameter": {
  4. "writeMode": "insert",
  5. "url": "在分析型数据库的控制台中选择数据库时提供的连接信息",
  6. "schema": "分析型数据库数据库名",
  7. "table": "分析型数据库表名",
  8. "column": ["*"],
  9. "username": "你的access key id",
  10. "password": "你的access key secret",
  11. "partition": "id,ds=2015"
  12. }
本文导读目录
本文导读目录
以上内容是否对您有帮助?