大咖手把手教您,DLA一键建仓!

异步潮涌
• 阅读 316

大咖手把手教您,DLA一键建仓!

DLA很早之前就支持了对关系型数据库的查询,但是一直以来用户会有一个担心:

直接分析RDS里面的数据会不会影响线上业务。

这个担心很合理,除非你要查询的RDS是专门用来做后台数据分析使用的,否则直接大规模分析确实可能会造成数据库性能下降,影响前台业务。对于这个担忧我们做过一些改进的措施,比如提供hint让用户可以手动指定底层查询并发度, 但是不是最理想的方案。

因此我们现在推出了一个极致方案: 每天自动、无缝地帮您把RDS里面的数据同步到OSS上面,并建立好相应的表结构 -- 跟RDS里面一样的表结构,让你可以基于OSS的数据进行无忧无虑的分析,这个功能我们称之为一键建仓

一键建仓

首先打开DLA的Schema管理页面,这里显示了您所有的数据库。

大咖手把手教您,DLA一键建仓!

点击“创建Schema”按钮进入建库向导选择页面,选择其中的“一键建仓”,点击“使用向导创建”

大咖手把手教您,DLA一键建仓!

因为一键建仓其实是在打通你的RDS数据和OSS数据,因此我们需要您的RDS和OSS授权:

大咖手把手教您,DLA一键建仓!

授予好权限之后点击下一步进入一键建仓配置的主页面:

大咖手把手教您,DLA一键建仓!

这个页面的左边列出了你所有的RDS,这是我们要建仓的数据来源,选择其中您要建仓的RDS,右边的服务器名,端口会自动填上,然后您需要填上用户名,密码,以及要同步的RDS的库名。

照道理说这个RDS的库名应该提供一个下拉框直接选就好了,不过目前由于一些限制暂时只能手动输入。

RDS信息填写完毕之后可以点击“测试连接”验证一下填写是否正确。

大咖手把手教您,DLA一键建仓!

数据来源搞定之后,下一步我们要填写“建仓配置”,这一块是我们数仓相关的配置,在DLA的场景下主要是OSS相关的一些配置, 主要有三个:

  • Schema: 这份数据在DLA里面新建一个什么名字的Schema
  • 数据位置: 这份数据放在您的哪个bucket的哪个路径下
  • 同步时间: 每天几点帮您定时同步RDS的最新数据到OSS上面

这里同步时间要注意下,应该选择半夜业务低谷的时候进行同步,避免影响线上业务。另外选择数据位置的时候我们会对您赋予DLA的OSS操作权限进行校验,如果没有赋予足够的权限,我们会做提示:

大咖手把手教您,DLA一键建仓!

一键建仓需要用户授予DLA对于所选择的路径有删除权限,因为我们每天会同步最新的数据到OSS上来,这里就涉及到要删除老数据的操作,关于如果赋予DLA OSS删除权限的详情可以参见这篇文章: 如何授权OSS删除权限给DLA

为什么前面已经进行了OSS授权,这里又来检查一遍OSS权限?

上一步授权的只是OSS只读权限,因为OSS删除权限兹事体大,因此没有在默认的权限里面,需要用户单独手动授权。

所有输入框有输入完毕之后点击“创建”就完成了创建操作,然后我们可以去Schema列表去查看我们通过一键建仓创建出来的这个新的Schema:

大咖手把手教您,DLA一键建仓!

点击“详细信息”进入这个Schema的详情页面,可以看出跟普通的Schema不一样,这个Schema的详情里面多了一个“配置”的选项卡,这个选项卡里面有一键建仓的详细配置。

大咖手把手教您,DLA一键建仓!

如果有修改一键建仓配置可以点击更新。比较有意思的是这个“立即同步”的按钮,一键建仓建立好了之后,我们只是建立了一个空的数据库,没有马上进行同步,而是要等用户设定的时间才运行,以免影响线上业务。如果用户判断对线上影响不大,想立马把数据同步过来以进行分析,那么可以点击“立即同步”的按钮。点击之后可以去“监控中心”的“任务列表”查看正在运行的一键建仓任务:

大咖手把手教您,DLA一键建仓!

这里可以看到执行的任务的类型,名称,状态,点击详情可以看到JSON格式的更详细的状态信息:哪些表正在同步,哪些表已经同步完成:

大咖手把手教您,DLA一键建仓!

等这个任务执行完成之后再回去看这个Schema就会发现已经有表了:

大咖手把手教您,DLA一键建仓!

来,我们再验证一下数据是不是真的过来了:

大咖手把手教您,DLA一键建仓!

果然数据也有了,搞定!

总结

这里我们介绍了DLA最新引入的一键建仓的功能,一键建仓的作用就是为了让数据在RDS里面的客户可以方便、快速、没有后顾之忧地对业务数据进行分析,希望这个功能的引入能够让大家把RDS里面的数据更好的分析起来。



本文作者:xumingmingv

原文链接

本文为云栖社区原创内容,未经允许不得转载。

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这