POLARDB的Oracle兼容性实现剖析_第1页
POLARDB的Oracle兼容性实现剖析_第2页
POLARDB的Oracle兼容性实现剖析_第3页
POLARDB的Oracle兼容性实现剖析_第4页
POLARDB的Oracle兼容性实现剖析_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle兼容性需求业界需求公有云已经进入了深水区, 需要更多地深入线下的存储和计算场景当今政治环境下, 迫切的去O 需求阿里兼容性需求向导公有云和线下业务积累A DA M 兼容性筛选目录兼容性的考虑架构的兼容性Oracle迁往POLARDB的考量语法兼容性的实现剖析兼容性的考虑工具和生态:兼容DBA、开发者等相关人员的使用习惯;SQL语法:对应用而言需要改造成本接近于零;性能:避免性能退化;成本:可以将成本做到极低;Architecture of POLARDBRDMAPolarStore/SANParserExtensionOptimizerPLPGSQLPostgreSQLlibpqj

2、dbcClientSDKRDMAASMPackagePLSQLParserOptimizerOraclepgAdminpsqlDMSOEMsqlplusOCIojdbcClientSDK操作界面应用开发架构兼容HighlyCompatiblewithOracle安全可靠DMSEvaluationTestingMigrationCostBenchmarkDTS兼容性测试全量迁移性能压测增量迁移 真实业务SQL测试数据回流Elasticity存储按使用量计费 计算和存储可弹性扩 展Database MigrationCycleADAM兼容性评估 性能评估ManagementDMS&Console生

3、命周期管理账户管理,备份管理SQL审计,日志管理PerformancePerformance Insight慢SQL分析 全链路诊断SQL Timing分析ADAM数据库和应用迁移(Advanced Database & Application Migration, 以下简称ADAM),是阿 里云结合阿里巴巴多年内部业务系统数据库和应用异构迁移的经验,自主研发的、迁移ORACLE数 据库和应用上云的企业级迁云产品和解决方案,能帮助企业最大限度降低ORACLE数据库和应用迁 移上云的风险、技术难度和实施周期。评估系统改造系统迁移系统画像系统 客观ORACLE数据库画 像 自动发现业务系统架构,

4、确定边界 识别关键用法 评估技术可行性 评估实施工作量 自动生成解决方案 自动兼容性转换 自动规格计算 结构、数据迁移 校验、治理 离线+在线、可扩展 SQL翻译工具 数据库改造工具 应用改造工具 PLSQL2JAVA改造工具采集系统 采集Oracle 采集应用 安全、脱敏语法兼容性实现方法的选型原则语法优先插件优先Rewrite优先慎重增加执行算子兼顾新旧版本的兼容语法兼容性的实现方法PL + Extension内核修改Re w r i t e增加执行算子内核修改 + Extension控制流程PL+ExtensionAnyData创建方法使用方式C R E A T E T Y P E S

5、Y S . A n y D a t a A S O B J E C T (d t T y p e N a m e V A R C H A R 2 , d t V a l u e C L O B ,/ * 获取数据类型函数 * /M E M B E R F U N C T I O N G e t T y p e N a m e ( s e l f I N A n y D a t a) R E T U R N V A R C H A R 2 D E T E R M I N I S T I C ,/ * I N T 类型到A n y D a t a 类型的转换函数 * / S T A T I C F

6、 U N C T I O N C o n v e r t I n t e g e r (n u m I N I N T E G E R) R E T U R N A n y D a t a ,/ * 访问函数 f o r A n y D a t a * /M E M B E R F U N C T I O N A c c e s s I n t e g e r ( s e l f I N A n y D a t a) R E T U R N I N T E G E R ,/ * 其他类型的转换函数、访问函数 * / ) ;C R E A T E E X T E N S I O N p o l

7、a r _ a n y d a t a ; C R E A T E T A B L E t 1 ( c 1 S Y S . A n y D a t a ) ;I N S E R T I N T O t 1V A L U E S ( A n y D a t a . C o n v e r t I n t e g e r ( 1 2 ) ) ; I N S E R T I N T O t 1V A L U E S ( A n y D a t a . C o n v e r t V a r c h a r ( T e s t A n y D a t a ) ) ;S E L E C TS Y S .

8、 A n y D a t a . G e t T y p e N a m e ( c 1 ) t y p e n a m e , ( C A S E S Y S . A n y D a t a . G e t T y p e N a m e ( c 1 )W H E N S Y S . I N T E G E R T H E NS Y S . A n y D a t a . A c c e s s N u m b e r ( c 1 ) : : v a r c h a r 2 W H E N S Y S . V A R C H A R T H E NS Y S . A n y D a t a

9、. A c c e s s V a r c h a r ( c 1 ) : : v a r c h a r 2 E N D ) c tF R O M t 1 ;RewritePivotselect * from SalesOrder pivot(sum(sales) for product in (A, B);RewritePivotImp_cols,- for each agg_func(CASE WHEN for_col=in_val THEN agg_param END)- 未出现在Pivot clause中的 列Imp_cols,增加执行算子UnPivotS E L E C T *F

10、R O M P i v o t _ S a l e s O r d e rU N P I V O T ( t o t a l _ s a l e s F O R p r o d u c t I N ( A a s P _ A , B a s P _ B , C a s P _ C ) ) ;增加执行算子UnPivotS E L E C T *F R O M p i v o t _ S a l e s O r d e r U N P I V O T ( t o t a l _ s a l e sF O R p r o d u c tI N ( a a s P _ A , B a s P _ B

11、, C a s P _ C ) ) ;s e l e c t s . s h o p , t . *f r o m p i v o t _ s a l e s o r d e r sc r o s s j o i n l a t e ra l ( va l u e s ( P _ A , s . a ) ,( P _ B , s . b ) ,( P _ C , s . c ) a s t ( p r o d u c t , t o t a l _ s a l e s ) w h e r e t .t o t a l _ s a l e s i s n o t n u l l ; ;High

12、CostRewrite+ExtensionConnectBy98100102101103104S E L E C T *F R O M e m p l o y e eS TA R T W I T H E N O = 1 0 0 C O N N E C T BY P R I O R e n o = m n o ;Replace 104ERROR: CONNECT BY loop in user data.Rewrite+ExtensionConnectBy,ARRAY AS recursionpath,Array_append(prior.recursionpath, ) AS recursio

13、npatrecursiveRewrite+ExtensionConnectByJoinquals: prior. = ANDpolar_cyclechecker_notice( = ANY (prior.recursionpath)- - E X T E N S I O N :C R E A T E O R R E P L A C E F U N C T I O Np g _ c a t a l o g . p o l a r _ c y c l e c h e c k e r _ n o t i c e r ( n e e d _ r e p o r t B O O L E A N )R E

14、 T U R N S b o o l e a n A S $ $ B E G I NI F n e e d _ r e p o r t T H E NR A I S E C O N N E C T B Y l o o p i n u s e r d a t a . ; E N D I F ;R E T U R N T R U E ; E N D ;$ $ L A N G U A G E p l p g s q l I M M U T A B L E ;控制流程SavePointinprocedure/ P G _ T R Y ( ) ;/ / f o r e a c h ( s , s t m

15、 t s )/ / b e g i ne x e c _ s t m t s ;/ / ( 1 )/ / P L s t m t/ e x e c _ s t m t ;( 2 ) s p l _ e x e c _ f u n c t i o n/ / e x e c _ s t m t _ c o m m i t e x e c _ s t m t _ r o l l b a c ke x e c _ s t m t _ s a v e p o i n te x e c _ s t m t _ r o l l b a c k _ t o e x e c _ s t m t _ o t h e re x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论