云服务器内容精选
-
使用 CDM 迁移数据到 GaussDB (DWS) 使用 云数据迁移 服务(Cloud Data Migration,简称CDM),可以将其他数据源(例如MySQL)的数据迁移到GaussDB(DWS) 集群的数据库中。 CDM提供同构/异构数据源之间批量数据迁移的功能,帮助用户实现从多种类型的数据源迁移数据到GaussDB(DWS)。 CDM在迁移数据到GaussDB(DWS)时,采用的是COPY方式和GDS并行导入方式。 使用CDM迁移数据到GaussDB(DWS)的典型场景,请参见云数据迁移服务(简称CDM)的如下章节: 入门:该入门场景为使用CDM迁移本地MySQL数据库到GaussDB(DWS) 图1 使用CDM迁移数据到GaussDB(DWS) 父主题: 整库迁移
-
背景信息 GDS的版本需与集群版本保持一致(如:GDS V100R008C00版本与DWS 1.3.X版本配套),否则可能会出现导入导出失败或导入导出进程停止响应等情况。因此请勿使用历史版本的GDS进行导入。 数据库版本升级后,请按照操作步骤中的办法下载GaussDB(DWS)软件包解压缩自带的GDS进行安装配置和启动。在导入导出开始时,GaussDB(DWS)也会进行两端的版本一致性检测,不一致时会在屏幕上显示报错信息并终止对应操作。 GDS的版本号的查看办法为:在GDS工具的解压目录下执行如下命令。 gds -V 数据库版本的查看办法为:连接数据库后,执行如下SQL命令查看。 1 SELECT version();
-
gds.conf参数说明 表1 gds.conf配置说明 属性 说明 取值范围 name 标识名。 - ip 监听ip地址。 IP需为合法IP地址。 IP的默认值:127.0.0.1 port 监听端口号。 取值范围:1024~65535,正整数。 默认值:8098。 data_dir 数据文件目录。 - err_dir 错误日志文件目录。 默认值:数据文件目录 log_file 日志文件路径。 - host 设置允许连接到GDS的主机IP地址(参数为CIDR格式,仅支持linux系统)。 - recursive 是否递归数据文件目录。 取值范围: true:递归 。 false:不递归。 默认值:false。 daemon 是否以DAEMON(后台)模式运行。 取值范围: true:以DAEMON模式运行。 false:不以DAEMON模式运行。 默认值:false。 parallel 导入工作线程并发数目。 取值范围:0~200,正整数。 默认值:8。
-
安装dws-kettle-plugin自定义插件 下载dws-client相关插件。 dws-kettle-plugin.jar:下载地址。 dws-client.jar:访问下载地址,获取最新版本使用。 caffeine.jar:访问下载地址,选择与dws-client对应依赖的版本,例如dws-client为1.0.10,则获取1.0.10下对应的caffeine.jar。 必须选择dws-client对应依赖的版本,使用其他版可能会出现不兼容问题。 huaweicloud-dws-jdbc.jar:访问下载地址,选择与dws-client对应依赖的版本,例如dws-client为1.0.10,则获取1.0.10下对应的huaweicloud-dws-jdbc.jar。 在kettle的安装目录data-integration\plugins下新建目录,如dws-plugin。 将dws-kettle-plugin.jar放在data-integration\plugins\dws-plugin目录下。 将dws-client.jar、caffeine.jar放在data-integration\plugins\dws-plugin\lib目录下。 将huaweicloud-dws-jdbc.jar放在data-integration\lib目录下。
-
迁移数据到GaussDB(DWS) GaussDB(DWS)提供了灵活的数据入库方式,可以将多种数据源的数据导入到GaussDB(DWS)中,如图1所示。各导入方式具有不同的特点,如表1所示,用户可以根据其特点自行选择。建议用户配合云数据迁移(Cloud Data Migration,简称CDM)和 数据治理中心 ( DataArts Studio )一起使用,CDM用于批量数据迁移,DataArts Studio可以对整个ETL过程进行编排调度,同时提供可视化的开发环境。 图1 数据迁移示意图 CDM、OBS、 MRS 、 DLI 为云服务。 GDS、DSC、gs_restore、gs_dump为内部工具。 表1 数据导入方式说明 数据导入方式 数据源 说明 优势 从OBS并行导入数据 OBS 支持将存储在OBS上的TXT、 CS V、ORC及CARBONDATA格式的数据并行导入到GaussDB(DWS),支持导入后查询数据,也支持远程读OBS上的数据。 GaussDB(DWS)优先推荐的导入方式。 并行拉取方式,性能好,横向扩展。 使用GDS从远端服务器导入数据 Servers(即远端服务器) 使用GaussDB(DWS)提供的GDS工具,利用多DN并行的方式,将数据从远端服务器导入到GaussDB(DWS)。这种方式导入效率高,适用于大批量数据入库。 从MRS导入数据到集群 MRS(HDFS) 配置一个GaussDB(DWS)集群连接到一个MRS集群,然后将数据从MRS的HDFS中读取到GaussDB(DWS)。 并行拉取方式,性能好,横向扩展。 从GaussDB(DWS)集群导入数据到新集群 - 支持两个GaussDB(DWS)集群之间的数据互访互通。通过Foreign Table方式实现跨DWS集群的数据访问和导入。 适用于多套GaussDB(DWS)集群之间的数据同步。 基于GDS的跨集群互联互通 - 通过GDS进行数据中转,实现多个集群之间的数据同步。 适用于多套GaussDB(DWS)集群之间的数据同步。 使用开源Kettle导入数据 MySQL、Oracle、BigQuery、Redshift等 支持使用开源Kettle工具配合dws-client插件完成数据入库。 适用于使用开源Kettle工具入库场景,数据入库速度在22000条/秒左右。 使用gsql元命令\COPY导入数据 本地文件 与直接使用SQL语句COPY不同,该命令读取/写入的文件只能是gsql客户端所在机器上的本地文件。 操作简单,适用于小批量数据入库。 使用COPY FROM STDIN导入数据 其他文件或数据库 使用Java语言开发应用程序时,通过调用JDBC驱动的CopyManager接口,从文件或其他数据库向GaussDB(DWS)写入数据。 从其他数据库直接写入GaussDB(DWS)的方式,具有业务数据无需落地成文件的优势。 Kafka实时入库到GaussDB(DWS) Kafka 使用DLI Flink作业实现Kafka实时入库GaussDB(DWS)。 适用Kafka实时入库。 使用CDM迁移数据到GaussDB(DWS) 数据库、NoSQL、文件系统、大数据平台 CDM提供同构/异构数据源之间批量数据迁移的功能,帮助用户实现从多种类型的数据源迁移数据到GaussDB(DWS)。CDM在迁移数据到GaussDB(DWS)时,采用的是COPY方式和GDS并行导入方式。 数据源丰富,操作简单。 使用DSC工具迁移SQL脚本 数据库、NoSQL、文件系统、大数据平台 请参考第三方ETL工具的相关文档。 GaussDB(DWS)提供了DSC工具,可以将Teradata/Oracle脚本迁移到GaussDB(DWS)。 通过OBS中转,数据源丰富,数据转换能力强。 使用gs_dump和gs_dumpall命令导出元数据 纯文本格式 自定义归档格式 目录归档格式 tar归档格式 gs_dump支持导出单个数据库或其内的对象,而gs_dumpall支持导出集群中所有数据库或各库的公共全局对象。 通过导入工具将导出的元数据信息导入至需要的数据库,可以完成数据库信息的迁移。 适用于元数据迁移。 使用gs_restore导入数据 sql/tmp/tar文件格式 在数据库迁移场景下,支持使用gs_restore工具将事先使用gs_dump工具导出的文件格式,重新导入GaussDB(DWS)集群,实现表定义、数据库对象定义等元数据的导入。导入数据主要包括以下内容: 所有数据库对象定义。 单个数据库对象定义。 单个Schema定义。 单张表定义。
-
语法格式 1 2 3 4 5 6 7 8 9 10 [ WITH [ RECURSIVE ] with_query [, ...] ] SELECT [/*+ plan_hint */] [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] { * | {expression [ [ AS ] output_name ]} [, ...] } [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY grouping_element [, ...] ] [ HAVING condition [, ...] ] [ { UNION | INTERSECT | EXCEPT | MINUS } [ ALL | DISTINCT ] select ] [ ORDER BY {expression [ [ ASC | DESC | USING operator ] | nlssort_expression_clause ] [ NULLS { FIRST | LAST } ]} [, ...] ] [ { [ LIMIT { count | ALL } ] [ OFFSET start [ ROW | ROWS ] ] } | { LIMIT start, { count | ALL } } ]
-
参数说明 DISTINCT [ ON ( expression [, ...] ) ] 从SELECT的结果集中删除所有重复的行,使结果集中的每行都是唯一的。 ON ( expression [, ...] ) 只保留那些在给出的表达式上运算出相同结果的行集合中的第一行。 SELECT列表 指定查询表中列名,可以是部分列或者是全部(使用通配符*表示)。 通过使用子句AS output_name可以为输出字段取个别名,这个别名通常用于输出字段的显示。 FROM子句 为SELECT声明一个或者多个源表。 FROM子句涉及的元素如下所示。 WHERE子句 WHERE子句构成一个行选择表达式,用来缩小SELECT查询的范围。condition是返回值为布尔型的任意表达式,任何不满足该条件的行都不会被检索。 WHERE子句中可以通过指定"(+)"操作符的方法将表的连接关系转换为外连接。但是不建议用户使用这种用法,因为这并不是SQL的标准语法,在做平台迁移的时候可能面临语法兼容性的问题。同时,使用"(+)"有很多限制: GROUP BY子句 将查询结果按某一列或多列的值分组,值相等的为一组。 HAVING子句 与GROUP BY子句配合用来选择特殊的组。HAVING子句将组的一些属性与一个常数值比较,只有满足HAVING子句中的逻辑表达式的组才会被提取出来。 ORDER BY子句 对SELECT语句检索得到的数据进行升序或降序排序。对于ORDER BY表达式中包含多列的情况:
-
注意事项 列存表与HStore表都暂不支持SELECT FOR UPDATE语法。 对HStore表执行SELECT查询时,会扫描列存主表CU上的数据、delta表上的I记录中的数据、内存中每行数据更新信息,并将三种信息合并后返回。 在通过主键索引或唯一索引查询数据的场景中: 对于传统列存表,唯一索引会同时存储行存Delta表上的数据位置信息(blocknum,offset)与列存主表的数据位置信息(cuid,offset),数据MERGE到主表后又会插入新的索引元组,索引会持续膨胀。 对于HStore表,由于实现了全局CUID的统一分配,索引元组中始终只存储(cuid,offset), 数据MERGE后不会产生新的索引元组。
-
参数说明 plan_hint子句 以/*+ */的形式在关键字后,用于对指定语句块生成的计划进行hint调优,详细用法请参见使用Plan Hint进行调优。 table_name 要更新的表名,可以使用模式修饰。 取值范围:已存在的表名称。 alias 目标表的别名。 取值范围:字符串,符合标识符命名规范。 expression 赋给字段的值或表达式。 DEFAULT 用对应字段的缺省值填充该字段。 如果没有缺省值,则为NULL。 from_list 一个表的表达式列表,允许在WHERE条件里使用其他表的字段。与在一个SELECT语句的FROM子句里声明表列表类似。 目标表禁止出现在from_list里,除非在使用一个自连接(此时它必须以from_list的别名出现)。 condition 一个返回boolean类型结果的表达式。只有这个表达式返回true的行才会被更新。
-
示例 创建表reason_update: 1 2 3 4 5 6 CREATE TABLE reason_update ( TABLE_SK INTEGER , TABLE_ID VARCHAR(20) , TABLE_NA VARCHAR(20) )WITH(ORIENTATION=COLUMN, ENABLE_HSTORE=ON); 向表reason_update中插入数据: 1 INSERT INTO reason_update VALUES (1, 'S01', 'StudentA'),(2, 'T01', 'TeacherA'),(3, 'T02', 'TeacherB'); 对表reason_update执行UPDATE操作: 1 UPDATE reason_update SET TABLE_NA = 'TeacherD' where TABLE_SK = 3;
-
语法格式 1 2 3 4 UPDATE [/*+ plan_hint */] [ ONLY ] table_name [ * ] [ [ AS ] alias ] SET {column_name = { expression | DEFAULT } |( column_name [, ...] ) = {( { expression | DEFAULT } [, ...] ) |sub_query }}[, ...] [ FROM from_list] [ WHERE condition ];
-
enable_hstoreopt_insert_sort 参数说明:用于控制HStore Opt表是否开启入库排序(包括Vaccum Full)。 该参数仅9.1.0.100及以上版本支持。 参数类型:SIGHUP 取值范围:布尔型 on表示开启入库排序。 off表示在异步排序开启(autovacuum_asyncsort_time_limit大于0)时,关闭入库排序(包括Vacuum Full),异步排序关闭时,入库排序(包括Vacuum Full) 仍然启用。 默认值:on
-
autovacuum_compaction_rows_limit 参数说明:小CU的阈值,存活元组数小于这个值的就会被认为是小CU。该参数仅8.2.1.300及以上集群版本支持。 参数类型:USERSET 取值范围:整型,-1~5000 默认值:2500 版本低于9.1.0.100,禁止设置该参数,否则可能会导致主键数据重复。 版本低于9.1.0.100,默认值为-1,表示关闭0CU开关。 9.1.0.100版本,该参数默认值为0。 9.1.0.200及以上版本,该参数默认值为2500。 该参数不建议自行修改,如需修改请联系技术支持。
-
autovacuum_max_workers_hstore 参数说明:设置Autovacuum_max_workers里面,能同时运行的专用于清理hstore的自动清理线程的最大数量。 参数类型:SIGHUP 取值范围:整型 默认值:1 当需要使用hstore表时,一定要同步修改以下几个参数的默认值,否则会导致hstore表性能严重劣化,推荐的修改配置是: autovacuum_max_workers_hstore=3,autovacuum_max_workers=6,autovacuum=true。
-
enable_hstore_keyby_upsert 参数说明:用于控制是否开启hstore表对于批量upsert的特定优化,针对前端可以保证不会并发upsert到同一行且是全列upsert的场景,建议开启,性能会有较大提升,该参数仅8.3.0及以上集群版本支持。 参数类型:USERSET 取值范围:布尔型 on表示开启对hstore表上的upsert特定优化。 off表示关闭对hstore表上的upsert特定优化,走老的流程。 默认值:off
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格