站长社区 _ SEO论坛 _ SEO优化

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 155|回复: 1
收起左侧

[mssql] 如何将数据从SQLServer同步至AnalyticDB for PostgreSQL

[复制链接]
gydtep2002 发表于 2020-4-15 13:55:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
使用DTS,Sqlserver -> AnalyticDB for PostgreSQL 同步链路,可以很方便的将SQLServer中分散的业务数据批量/实时导入至AnalyticDB for PostgreSQL, 进行复杂的OLAP查询与分析。
需要准备的条件:
  • 正在运行的SQLServer实例与AnalyticDB for PostgreSQL实例
  • 在源/目标数据库实例开通的网络权限/白名单, 有合适权限的数据库账号
  • 被同步的SQLServer表需要有主键6 f" W4 O! r5 Y5 J* A. D
申请阿里云服务器等产品时,可以使用2000元阿里云代金券,阿里云官网领取网址:https://dashi.aliyun.com/site/yun/youhui
注意事项
  • 当前不支持结构迁移。即需要在目标库手动创建目标表,当前不会自动创建。
  • 当前版本不支持DDL同步。即数据同步过程中,源表发生表结构修改(比如 alter table add column),同步任务会立即报错,当目标表同样增加了新增列时,通过重试可恢复任务。
  • 同步任务开始前,需要提前在目标库手动创建与源表数据类型相匹配的表结构
  • 源表与目标表之间的映射关系,需要参照文章内的表格,错误的映射类型可能会发生预期外的结果。
  • SQLServer支持类型,2005、2008、2008R2、2012、2014、2016、2017
  • DTS在执行全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,在数据库性能较差、规格较低或业务量较大的情况下(例如源库有大量慢SQL、存在无主键表或目标库存在死锁等),可能会加重数据库压力,甚至导致数据库服务不可用。因此您需要在执行数据同步前评估源库和目标库的性能,同时建议您在业务低峰期执行数据同步(例如源库和目标库的CPU负载在30%以下)。
    - F+ G1 h  E0 G2 }8 w
支持的类型与映射关系SQLServer中的数据类型AnalyticDB for PostgreSQL对应的数据类型! O" W, n6 K* |0 a4 C( O0 y
INTINTEGER
9 T/ Q+ {0 M  }; E* b! mSMALLINTSMALLINT
' x& F) \) t6 y! i6 iTINYINTSMALLINT
$ m/ Y- ?3 n1 Q! [BIGINTBIGINT' G8 o3 v0 U* L. Y* e
BITBIT* d2 Z9 f0 W: |9 u% F3 `. O
DECIMALDECIMAL
+ m8 b% @7 p4 g) O+ j0 `4 ^1 [' aNUMERICDECIMAL
( p/ J; T* A& l/ bCHARCHARACTER[(N)]
* c) m- Q7 S" H- C1 N5 }; BVARCHARCHARACTER[(N)]
9 h6 ^, E" M% A5 W; T- a/ I  A5 jNCHARCHARACTER[(N)]
: I( `% X3 z2 z5 K. \" |% zTEXT/NTEXTTEXT, n" D9 u; s5 t8 u" P
FLOATDOUBLE. P' ?  b/ I1 [. P" i- {5 Q
REALREAL2 |( `& _. e7 h/ m# Y. g0 [
DATEDATE
4 V( m) ~% X& N4 y7 ~% mDATETIME/DATETIME2TIMESTAMP WITHOUT TIME ZONE
/ B7 c+ H- C8 LDATETIMEOFFSETTIMESTAMP WITH TIME ZONE
$ y1 b, }9 ?4 a8 l; T) F6 A6 ESMALLDATETIMETIMESTAMP WITHOUT TIME ZONE
1 f1 V9 _! L* STIMETIME WITHOUT TIME ZONE7 }4 D5 a. v8 E4 v1 `
BINARY/VARBINARYBYTEA6 @1 V' p* K* F: B; V
IMAGEBYTEA* |/ b7 u) \+ T+ J# Y
MONEY/SMALLMONEYDECIMAL0 L+ A1 [% p1 P4 |  ?& d2 W1 K
UNIQUEIDENTIFIERCHARACTER VARING
: d2 b0 A  \/ ?0 ^9 d. cXMLXML不支持的数据类型SQLServer中的数据类型
1 }$ f$ [. U8 L$ u2 qTIMESTAMP
' C# Y2 ^" U( Q* YCURSOR* s+ T8 ?; ~3 o' z, a
ROWVERSION+ Q6 ~: h) Q  G( o
HIERACHYID
! i" _. |$ t9 E- q3 b$ W* ISQL_VARIANT
+ `9 [! ?7 e. C) pSPATIAL GEOMETRY
4 ?, D6 x1 a/ |! D1 ?0 O1 s! k5 F- mSPATIAL GEOGRAPHY, B% M% s5 W8 m9 |- v  L
TABLE操作步骤准备源表与目标表
1.在SQLServer创建源表) V3 O( F  ?4 U: }% D. _! L1 G, U
样例建表语句:
-- 创建数据库create database test_adb;......CREATE TABLE [dbo].[demo_table](    [id]  bigint            NOT NULL primary key,    [t0]  smallint          NULL,    [t1]  int               NULL,    [t2]  binary(8)         NULL,    [t3]  bit               NULL,    [t4]  bit               NULL,    [t5]  decimal(18, 3)    NULL,    [t6]  numeric(18)       NULL,    [t7]  char(3)           NULL,    [t8]  varchar(MAX)      NULL,    [t9]  nchar(7)          NULL,    [t10] nvarchar(16)      NULL,    [t11] text              NULL,    [t12] ntext             NULL,    [t13] float(53)         NULL,    [t14] real              NULL,    [t15] date              NULL,    [t16] datetime          NULL,    [t17] datetime2(7)      NULL,    [t18] datetimeoffset(7) NULL,    [t19] smalldatetime     NULL,    [t20] time(7)           NULL,    [t21] varbinary(MAX)    NULL,    [t22] image             NULL,    [t23] money             NULL,    [t24] smallmoney        NULL,    [t25] uniqueidentifier  NULL,    [t26] xml NULL);
2.将测试数据插入到sqlserver表
INSERT INTO [dbo].[demo_table]([id], [t0], [t1], [t2], [t3], [t4], [t5], [t6], [t7], [t8], [t9], [t10], [t11], [t12], [t13], [t14], [t15], [t16], [t17], [t18], [t20], [t21], [t22], [t23], [t24], [t25], [t26]) values ( N'2000', N'0', N'2', 0x616D702D74657374, '1', '0', N'123413124.123', N'123413124.123', N'abc', N'你好谢谢再见', N'ABCdefg', N'hijklmN', N'amp-test', 'amp-test amp-text', N'122.33333', N'22.222222', N'2015-03-12', N'2015-03-12 21:40:39.456', N'2015-03-12 21:40:35.123456', N'2015-03-12 21:43:32.1234567 +08:00', N'16:59:11.1234567', 0x616D702D74657374, 0x313131616D702D74657374313131616D702D74657374313131313131616D702D74657374313131616D702D74657374313131, N'12912.131', N'912.121', N'28DB9939-F43F-4B7C-8511-6497F045D60C', N'<HTML/>');INSERT INTO [dbo].[demo_table]([id], [t0], [t1], [t2], [t3], [t4], [t5], [t6], [t7], [t8], [t9], [t10], [t11], [t12], [t13], [t14], [t15], [t16], [t17], [t18], [t20], [t21], [t22], [t23], [t24], [t25], [t26]) values ( N'2001', N'0', N'2', 0x616D702D74657374, '1', '0', N'123413124.123', N'123413124.123', N'abc', N'你好谢谢再见', N'ABCdefg', N'hijklmN', N'amp-test', 'amp-test amp-text', N'122.33333', N'22.222222', N'2015-03-12', N'2015-03-12 21:40:39.456', N'2015-03-12 21:40:35.123456', N'2015-03-12 21:43:32.1234567 +08:00', N'16:59:11.1234567', 0x616D702D74657374, 0x313131616D702D74657374313131616D702D74657374313131313131616D702D74657374313131616D702D74657374313131, N'12912.131', N'912.121', N'28DB9939-F43F-4B7C-8511-6497F045D60C', N'<HTML/>');INSERT INTO [dbo].[demo_table]([id], [t0], [t1], [t2], [t3], [t4], [t5], [t6], [t7], [t8], [t9], [t10], [t11], [t12], [t13], [t14], [t15], [t16], [t17], [t18], [t20], [t21], [t22], [t23], [t24], [t25], [t26]) values ( N'2002', N'0', N'2', 0x616D702D74657374, '1', '0', N'123413124.123', N'123413124.123', N'abc', N'你好谢谢再见', N'ABCdefg', N'hijklmN', N'amp-test', 'amp-test amp-text', N'122.33333', N'22.222222', N'2015-03-12', N'2015-03-12 21:40:39.456', N'2015-03-12 21:40:35.123456', N'2015-03-12 21:43:32.1234567 +08:00', N'16:59:11.1234567', 0x616D702D74657374, 0x313131616D702D74657374313131616D702D74657374313131313131616D702D74657374313131616D702D74657374313131, N'12912.131', N'912.121', N'28DB9939-F43F-4B7C-8511-6497F045D60C', N'<HTML/>');INSERT INTO [dbo].[demo_table]([id], [t0], [t1], [t2], [t3], [t4], [t5], [t6], [t7], [t8], [t9], [t10], [t11], [t12], [t13], [t14], [t15], [t16], [t17], [t18], [t20], [t21], [t22], [t23], [t24], [t25], [t26]) values ( N'2003', N'0', N'2', 0x616D702D74657374, '1', '0', N'123413124.123', N'123413124.123', N'abc', N'你好谢谢再见', N'ABCdefg', N'hijklmN', N'amp-test', 'amp-test amp-text', N'122.33333', N'22.222222', N'2015-03-12', N'2015-03-12 21:40:39.456', N'2015-03-12 21:40:35.123456', N'2015-03-12 21:43:32.1234567 +08:00', N'16:59:11.1234567', 0x616D702D74657374, 0x313131616D702D74657374313131616D702D74657374313131313131616D702D74657374313131616D702D74657374313131, N'12912.131', N'912.121', N'28DB9939-F43F-4B7C-8511-6497F045D60C', N'<HTML/>');INSERT INTO [dbo].[demo_table]([id], [t0], [t1], [t2], [t3], [t4], [t5], [t6], [t7], [t8], [t9], [t10], [t11], [t12], [t13], [t14], [t15], [t16], [t17], [t18], [t20], [t21], [t22], [t23], [t24], [t25], [t26]) values ( N'2004', N'0', N'2', 0x616D702D74657374, '1', '0', N'123413124.123', N'123413124.123', N'abc', N'你好谢谢再见', N'ABCdefg', N'hijklmN', N'amp-test', 'amp-test amp-text', N'122.33333', N'22.222222', N'2015-03-12', N'2015-03-12 21:40:39.456', N'2015-03-12 21:40:35.123456', N'2015-03-12 21:43:32.1234567 +08:00', N'16:59:11.1234567', 0x616D702D74657374, 0x313131616D702D74657374313131616D702D74657374313131313131616D702D74657374313131616D702D74657374313131, N'12912.131', N'912.121', N'28DB9939-F43F-4B7C-8511-6497F045D60C', N'<HTML/>');INSERT INTO [dbo].[demo_table]([id], [t0], [t1], [t2], [t3], [t4], [t5], [t6], [t7], [t8], [t9], [t10], [t11], [t12], [t13], [t14], [t15], [t16], [t17], [t18], [t20], [t21], [t22], [t23], [t24], [t25], [t26]) values ( N'2005', N'0', N'2', 0x616D702D74657374, '1', '0', N'123413124.123', N'123413124.123', N'abc', N'你好谢谢再见', N'ABCdefg', N'hijklmN', N'amp-test', 'amp-test amp-text', N'122.33333', N'22.222222', N'2015-03-12', N'2015-03-12 21:40:39.456', N'2015-03-12 21:40:35.123456', N'2015-03-12 21:43:32.1234567 +08:00', N'16:59:11.1234567', 0x616D702D74657374, 0x313131616D702D74657374313131616D702D74657374313131313131616D702D74657374313131616D702D74657374313131, N'12912.131', N'912.121', N'28DB9939-F43F-4B7C-8511-6497F045D60C', N'<HTML/>');INSERT INTO [dbo].[demo_table]([id], [t0], [t1], [t2], [t3], [t4], [t5], [t6], [t7], [t8], [t9], [t10], [t11], [t12], [t13], [t14], [t15], [t16], [t17], [t18], [t20], [t21], [t22], [t23], [t24], [t25], [t26]) values ( N'2006', N'0', N'2', 0x616D702D74657374, '1', '0', N'123413124.123', N'123413124.123', N'abc', N'你好谢谢再见', N'ABCdefg', N'hijklmN', N'amp-test', 'amp-test amp-text', N'122.33333', N'22.222222', N'2015-03-12', N'2015-03-12 21:40:39.456', N'2015-03-12 21:40:35.123456', N'2015-03-12 21:43:32.1234567 +08:00', N'16:59:11.1234567', 0x616D702D74657374, 0x313131616D702D74657374313131616D702D74657374313131313131616D702D74657374313131616D702D74657374313131, N'12912.131', N'912.121', N'28DB9939-F43F-4B7C-8511-6497F045D60C', N'<HTML/>');
3.AnalyticDB for PostgreSQL 创建目标表
create database test_adb;create schema dbo;......-- AnalyticDB for PostgreSQL,提前创建好test_adb库CREATE TABLE dbo.demo_table ( "id"                bigint NOT NULL PRIMARY KEY, "t0"                smallint                       DEFAULT NULL, "t1"                integer                        DEFAULT NULL, "t2"                bytea                          DEFAULT NULL, "t3"                bit(1)                         DEFAULT NULL, "t4"                bit                            DEFAULT NULL, "t5"                decimal(18, 3)                 DEFAULT NULL, "t6"                decimal                        DEFAULT NULL, "t7"                character(3)                   DEFAULT NULL, "t8"                character(18)                  DEFAULT NULL, "t9"                character(7)                   DEFAULT NULL, "t10"               character varying              DEFAULT NULL, "t11"               text                           DEFAULT NULL, "t12"               text                           DEFAULT NULL, "t13"               double precision               DEFAULT NULL, "t14"               real                           DEFAULT NULL, "t15"               date                           DEFAULT NULL, "t16"               timestamp(6) without time zone DEFAULT NULL, "t17"               timestamp without time zone    DEFAULT NULL, "t18"               timestamp with time zone       DEFAULT NULL, "t19"               timestamp without time zone    DEFAULT NULL, "t20"               time without time zone         DEFAULT NULL, "t21"               bytea                          DEFAULT NULL, "t22"               bytea                          DEFAULT NULL, "t23"               decimal                        DEFAULT NULL, "t24"               decimal                        DEFAULT NULL, "t25"               character varying              DEFAULT NULL, "t26"               xml                            DEFAULT NULL) distributed by ("id");购买dts数据同步服务
阿里云服务器1核2G低至102元/年,阿里云官活动网址:https://dashi.aliyun.com/site/yun/ecs  新老用户均可参与。
  • 登陆dts控制台% H9 f2 `$ O7 T% Z$ c% B% ^1 f

      u+ s' x" ~4 C6 `  |                               
    登录/注册后可看大图
  • 购买同步服务
    - B; e" B3 K: V# Z1)点击创建同步

    3 R# U+ i& y  E( g

$ K, U- A' ]4 A' Z                               
登录/注册后可看大图

* o( `4 c, Z+ [: m; R. S# N6 Y: _2)选择同步服务,SQLServer源和AnalyticDB for PostgreSQL 目标实例类型& a( J/ \$ k0 H. I+ s  B2 F. f' n/ a9 C; c
4 ?8 |% K3 _, n
                               
登录/注册后可看大图

6 p$ c, O* p# M; {- w5 x3)开通服务
4 F. v- {6 W; p4 z9 N5 n: Z8 ?" B; [

% m* q& h( ?7 h4 _0 ~( S8 {* |! D                               
登录/注册后可看大图
配置同步链路
1.dts数据同步控制台,找到刚购买好的dts同步服务,配置链路/ W% ~1 W: q, p4 G$ x1 J* h$ @
7 g5 e; t+ L6 r, b$ i
                               
登录/注册后可看大图
* |0 o' a+ I6 h0 j
. [2 M9 }8 F; g* r3 j6 i" W" o  k
                               
登录/注册后可看大图

5 E3 [7 ]8 t% Z* E" Y$ T2.选择需要被同步的表
. ~8 e0 Z3 v- V* {9 H
. V' q8 U' K+ `
                               
登录/注册后可看大图
8 b) @' N2 R9 B7 N5 p
3.按照建表语句,选择主键与分布键
8 r! ~( V. f% ~' S

- V' ?9 z$ _* I$ h2 ~5 e                               
登录/注册后可看大图

5 [4 q( o- q8 l7 R' j4.预检查并启动- \/ U- h' J0 q1 k) @

; n6 p" o- ~  W                               
登录/注册后可看大图
0 _) j3 }2 ?  h1 ?" J- P
5.检查同步任务执行情况* [3 i; l* X4 s! p/ J) w1 l1 Y# P0 O

7 k' _# n5 F! v/ r) A. k* K  W                               
登录/注册后可看大图

8 }9 a" Y! o$ L% ~6.在目标表查询已同步的数据  G! P: |; a: a& `

+ {% X# p: K5 ~" p7 D$ T; U% K                               
登录/注册后可看大图
  A6 t* K  p4 C, q% O( B$ L
7.源端修改数据,观察同步情况0 y+ t+ R' D4 q) a+ q
在源端删除之前已经成功写入的id=2000的行
-- SQLServer端执行DELETE FROM [dbo].[demo_table] WHERE [id]=N'2000';
在目标端查询
-- AnalyticDB for PostgreSQL端执行select * from dbo.demo_table;
9 m& }& o6 d$ W0 T+ I$ S
                               
登录/注册后可看大图
多表合一功能介绍
OLTP场景下,为了提高业务表响应速度,通常会对数据做分库分表处理。但是到了AnalyticDB for PostgreSQL ,单表即可存储海量数据,使用单表查询更为方便。为了应对这种情况,我们设计了多表归并功能,即将源库多张表结构相同的表同步至同一张AnalyticDB for PostgreSQL表。% A" G6 A1 `* j+ f9 B* `4 g; L
原理介绍
在目标表结构增加名为"__dts_data_source"的列,配置链路页面勾选多表归并功能,这样dts会在同步过程中向该列写入DTS_ID.DATABASE.SCHEMA.TABLE格式的值,用来追踪数据来源。
. U9 X# H* c1 q  y8 @7 Z. i! R例如,将上面的sqlserver数据分散到两张分区表内:
-- 在sqlserver端执行CREATE TABLE [dbo].[demo_table_01](    [id]  bigint            NOT NULL primary key,    [t0]  smallint          NULL,    [t1]  int               NULL,    [t2]  binary(8)         NULL,    [t3]  bit               NULL,    [t4]  bit               NULL,    [t5]  decimal(18, 3)    NULL,    [t6]  numeric(18)       NULL,    [t7]  char(3)           NULL,    [t8]  varchar(MAX)      NULL,    [t9]  nchar(7)          NULL,    [t10] nvarchar(16)      NULL,    [t11] text              NULL,    [t12] ntext             NULL,    [t13] float(53)         NULL,    [t14] real              NULL,    [t15] date              NULL,    [t16] datetime          NULL,    [t17] datetime2(7)      NULL,    [t18] datetimeoffset(7) NULL,    [t19] smalldatetime     NULL,    [t20] time(7)           NULL,    [t21] varbinary(MAX)    NULL,    [t22] image             NULL,    [t23] money             NULL,    [t24] smallmoney        NULL,    [t25] uniqueidentifier  NULL,    [t26] xml NULL);CREATE TABLE [dbo].[demo_table_02](    [id]  bigint            NOT NULL primary key,    [t0]  smallint          NULL,    [t1]  int               NULL,    [t2]  binary(8)         NULL,    [t3]  bit               NULL,    [t4]  bit               NULL,    [t5]  decimal(18, 3)    NULL,    [t6]  numeric(18)       NULL,    [t7]  char(3)           NULL,    [t8]  varchar(MAX)      NULL,    [t9]  nchar(7)          NULL,    [t10] nvarchar(16)      NULL,    [t11] text              NULL,    [t12] ntext             NULL,    [t13] float(53)         NULL,    [t14] real              NULL,    [t15] date              NULL,    [t16] datetime          NULL,    [t17] datetime2(7)      NULL,    [t18] datetimeoffset(7) NULL,    [t19] smalldatetime     NULL,    [t20] time(7)           NULL,    [t21] varbinary(MAX)    NULL,    [t22] image             NULL,    [t23] money             NULL,    [t24] smallmoney        NULL,    [t25] uniqueidentifier  NULL,    [t26] xml NULL);-- 向两张分区表插入少量数据INSERT INTO [dbo].[demo_table_01]([id], [t0], [t1], [t2], [t3], [t4], [t5], [t6], [t7], [t8], [t9], [t10], [t11], [t12], [t13], [t14], [t15], [t16], [t17], [t18], [t20], [t21], [t22], [t23], [t24], [t25], [t26]) values ( N'2000', N'0', N'2', 0x616D702D74657374, '1', '0', N'123413124.123', N'123413124.123', N'abc', N'你好谢谢再见', N'ABCdefg', N'hijklmN', N'amp-test', 'amp-test amp-text', N'122.33333', N'22.222222', N'2015-03-12', N'2015-03-12 21:40:39.456', N'2015-03-12 21:40:35.123456', N'2015-03-12 21:43:32.1234567 +08:00', N'16:59:11.1234567', 0x616D702D74657374, 0x313131616D702D74657374313131616D702D74657374313131313131616D702D74657374313131616D702D74657374313131, N'12912.131', N'912.121', N'28DB9939-F43F-4B7C-8511-6497F045D60C', N'<HTML/>');INSERT INTO [dbo].[demo_table_01]([id], [t0], [t1], [t2], [t3], [t4], [t5], [t6], [t7], [t8], [t9], [t10], [t11], [t12], [t13], [t14], [t15], [t16], [t17], [t18], [t20], [t21], [t22], [t23], [t24], [t25], [t26]) values ( N'2001', N'0', N'2', 0x616D702D74657374, '1', '0', N'123413124.123', N'123413124.123', N'abc', N'你好谢谢再见', N'ABCdefg', N'hijklmN', N'amp-test', 'amp-test amp-text', N'122.33333', N'22.222222', N'2015-03-12', N'2015-03-12 21:40:39.456', N'2015-03-12 21:40:35.123456', N'2015-03-12 21:43:32.1234567 +08:00', N'16:59:11.1234567', 0x616D702D74657374, 0x313131616D702D74657374313131616D702D74657374313131313131616D702D74657374313131616D702D74657374313131, N'12912.131', N'912.121', N'28DB9939-F43F-4B7C-8511-6497F045D60C', N'<HTML/>');INSERT INTO [dbo].[demo_table_01]([id], [t0], [t1], [t2], [t3], [t4], [t5], [t6], [t7], [t8], [t9], [t10], [t11], [t12], [t13], [t14], [t15], [t16], [t17], [t18], [t20], [t21], [t22], [t23], [t24], [t25], [t26]) values ( N'2002', N'0', N'2', 0x616D702D74657374, '1', '0', N'123413124.123', N'123413124.123', N'abc', N'你好谢谢再见', N'ABCdefg', N'hijklmN', N'amp-test', 'amp-test amp-text', N'122.33333', N'22.222222', N'2015-03-12', N'2015-03-12 21:40:39.456', N'2015-03-12 21:40:35.123456', N'2015-03-12 21:43:32.1234567 +08:00', N'16:59:11.1234567', 0x616D702D74657374, 0x313131616D702D74657374313131616D702D74657374313131313131616D702D74657374313131616D702D74657374313131, N'12912.131', N'912.121', N'28DB9939-F43F-4B7C-8511-6497F045D60C', N'<HTML/>');INSERT INTO [dbo].[demo_table_01]([id], [t0], [t1], [t2], [t3], [t4], [t5], [t6], [t7], [t8], [t9], [t10], [t11], [t12], [t13], [t14], [t15], [t16], [t17], [t18], [t20], [t21], [t22], [t23], [t24], [t25], [t26]) values ( N'2003', N'0', N'2', 0x616D702D74657374, '1', '0', N'123413124.123', N'123413124.123', N'abc', N'你好谢谢再见', N'ABCdefg', N'hijklmN', N'amp-test', 'amp-test amp-text', N'122.33333', N'22.222222', N'2015-03-12', N'2015-03-12 21:40:39.456', N'2015-03-12 21:40:35.123456', N'2015-03-12 21:43:32.1234567 +08:00', N'16:59:11.1234567', 0x616D702D74657374, 0x313131616D702D74657374313131616D702D74657374313131313131616D702D74657374313131616D702D74657374313131, N'12912.131', N'912.121', N'28DB9939-F43F-4B7C-8511-6497F045D60C', N'<HTML/>');INSERT INTO [dbo].[demo_table_02]([id], [t0], [t1], [t2], [t3], [t4], [t5], [t6], [t7], [t8], [t9], [t10], [t11], [t12], [t13], [t14], [t15], [t16], [t17], [t18], [t20], [t21], [t22], [t23], [t24], [t25], [t26]) values ( N'2004', N'0', N'2', 0x616D702D74657374, '1', '0', N'123413124.123', N'123413124.123', N'abc', N'你好谢谢再见', N'ABCdefg', N'hijklmN', N'amp-test', 'amp-test amp-text', N'122.33333', N'22.222222', N'2015-03-12', N'2015-03-12 21:40:39.456', N'2015-03-12 21:40:35.123456', N'2015-03-12 21:43:32.1234567 +08:00', N'16:59:11.1234567', 0x616D702D74657374, 0x313131616D702D74657374313131616D702D74657374313131313131616D702D74657374313131616D702D74657374313131, N'12912.131', N'912.121', N'28DB9939-F43F-4B7C-8511-6497F045D60C', N'<HTML/>');INSERT INTO [dbo].[demo_table_02]([id], [t0], [t1], [t2], [t3], [t4], [t5], [t6], [t7], [t8], [t9], [t10], [t11], [t12], [t13], [t14], [t15], [t16], [t17], [t18], [t20], [t21], [t22], [t23], [t24], [t25], [t26]) values ( N'2005', N'0', N'2', 0x616D702D74657374, '1', '0', N'123413124.123', N'123413124.123', N'abc', N'你好谢谢再见', N'ABCdefg', N'hijklmN', N'amp-test', 'amp-test amp-text', N'122.33333', N'22.222222', N'2015-03-12', N'2015-03-12 21:40:39.456', N'2015-03-12 21:40:35.123456', N'2015-03-12 21:43:32.1234567 +08:00', N'16:59:11.1234567', 0x616D702D74657374, 0x313131616D702D74657374313131616D702D74657374313131313131616D702D74657374313131616D702D74657374313131, N'12912.131', N'912.121', N'28DB9939-F43F-4B7C-8511-6497F045D60C', N'<HTML/>');INSERT INTO [dbo].[demo_table_02]([id], [t0], [t1], [t2], [t3], [t4], [t5], [t6], [t7], [t8], [t9], [t10], [t11], [t12], [t13], [t14], [t15], [t16], [t17], [t18], [t20], [t21], [t22], [t23], [t24], [t25], [t26]) values ( N'2006', N'0', N'2', 0x616D702D74657374, '1', '0', N'123413124.123', N'123413124.123', N'abc', N'你好谢谢再见', N'ABCdefg', N'hijklmN', N'amp-test', 'amp-test amp-text', N'122.33333', N'22.222222', N'2015-03-12', N'2015-03-12 21:40:39.456', N'2015-03-12 21:40:35.123456', N'2015-03-12 21:43:32.1234567 +08:00', N'16:59:11.1234567', 0x616D702D74657374, 0x313131616D702D74657374313131616D702D74657374313131313131616D702D74657374313131616D702D74657374313131, N'12912.131', N'912.121', N'28DB9939-F43F-4B7C-8511-6497F045D60C', N'<HTML/>');
在AnalyticDB for PostgreSQL端创建包含__dts_data_source列的目标表。
-- 在AnalyticDB for PostgreSQL 端执行CREATE TABLE dbo.demo_table (                                "id"                bigint NOT NULL,                                "t0"                smallint                       DEFAULT NULL,                                "t1"                integer                        DEFAULT NULL,                                "t2"                bytea                          DEFAULT NULL,                                "t3"                bit(1)                         DEFAULT NULL,                                "t4"                bit                            DEFAULT NULL,                                "t5"                decimal(18, 3)                 DEFAULT NULL,                                "t6"                decimal                        DEFAULT NULL,                                "t7"                character(3)                   DEFAULT NULL,                                "t8"                character(18)                  DEFAULT NULL,                                "t9"                character(7)                   DEFAULT NULL,                                "t10"               character varying              DEFAULT NULL,                                "t11"               text                           DEFAULT NULL,                                "t12"               text                           DEFAULT NULL,                                "t13"               double precision               DEFAULT NULL,                                "t14"               real                           DEFAULT NULL,                                "t15"               date                           DEFAULT NULL,                                "t16"               timestamp(6) without time zone DEFAULT NULL,                                "t17"               timestamp without time zone    DEFAULT NULL,                                "t18"               timestamp with time zone       DEFAULT NULL,                                "t19"               timestamp without time zone    DEFAULT NULL,                                "t20"               time without time zone         DEFAULT NULL,                                "t21"               bytea                          DEFAULT NULL,                                "t22"               bytea                          DEFAULT NULL,                                "t23"               decimal                        DEFAULT NULL,                                "t24"               decimal                        DEFAULT NULL,                                "t25"               character varying              DEFAULT NULL,                                "t26"               xml                            DEFAULT NULL,                                "__dts_data_source" text                           DEFAULT NULL,                            PRIMARY KEY (id)) distributed by ("id");配置步骤
1.配置同步表的页面,勾选多表归并功能,并点击编辑,修改目标表名
+ p7 W. G! x* m6 y/ R
+ p- N# L+ d6 X+ e' f' Y
                               
登录/注册后可看大图

+ a6 ]4 W% n" s+ l4 Y2.编辑所有的表名,比如案例上去掉源表名后缀/ H" M# i& x4 G- Y  C: N1 M
/ b& c! S; y& d$ b
                               
登录/注册后可看大图

, p" E+ w8 S% c. k' e$ o$ Z2 i! u3.修改好目标表名的效果
- M7 \" ~: T% G6 |& J
( m4 k* s; w& s9 G; N' K# M2 j
                               
登录/注册后可看大图
8 X5 G8 a$ w* N$ N
4.配置主键及分布key
0 D8 ~, s' Y  l3 E6 X2 R! T' Z" H# g

. v+ j" x( F' B$ u2 a0 |+ R7 @                               
登录/注册后可看大图

: O$ u& Y4 y9 q. f, ]9 p2 q' \8 s5.开启同步任务,在目标库进行查询
select id, __dts_data_source from dbo.demo_table;
6.查询结果,从__dts_data_source列可以看出+ W1 U9 v3 C8 S$ J8 b
7 Z  @5 S' a4 p, V, Y
                               
登录/注册后可看大图
9 w3 Q+ N! d% n  _2 }- J, n
以这一行结果为例
dtsu3uv3qs311y6apm:test_adb.dbo.demo_table_01
dtsu3uv3qs311y6apm为dts同步任务的id,在dts控制台可以找到匹配的任务3 w6 D2 ~4 E$ x

3 M, b. A2 R+ g4 F                               
登录/注册后可看大图

2 ^! f; o, X( T8 ^9 t剩下的test_adb.dbo.demo_table_01分别为源database.源schema.源table。
1 [1 Q9 H' B* G% A- x
回复

使用道具 举报

host小蘑菇 发表于 2020-4-16 16:49:31 | 显示全部楼层
这个太长了  _# s  j1 }1 y7 j9 A
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|易采站长站 ( 蒙ICP备14002389-1号 ) |

GMT+8, 2020-6-2 07:49

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表