云服务器内容精选

  • 使用API导入数据 使用bulk API通过curl命令导入数据文件,如下操作以JSON数据文件为例。 使用API导入数据文件时,建议导入的数据文件大小不能超过50MB。 本案例以非安全模式的集群为例介绍curl命令导入数据,如果是其他模式的集群请参见通过Curl命令行接入集群接入集群。 登录即将接入集群的弹性云服务器。 登录弹性云服务器的详细操作请见登录弹性云服务器。 将JSON数据文件上传至ECS。 在ECS中存放JSON数据文件的路径下执行如下命令,将JSON数据导入到Elasticsearch集群。 其中,{Private network address and port number of the node}需替换为集群中节点的内网访问地址和端口号,当该节点出现故障时,将导致命令执行失败。如果集群包含多个节点,可以将{Private network address and port number of the node}替换为集群中另一节点的内网访问地址和端口号;如果集群只包含一个节点,则需要将该节点修复之后再次执行命令进行导入数据。test.json为导入数据的json文件。 curl -X PUT "http://{Private network address and port number of the node} /_bulk" -H 'Content-Type: application/json' --data-binary @test.json 其中,-X参数的参数值为命令,如“-X PUT”,-H参数的参数值为消息头,如“-H 'Content-Type: application/json' --data-binary @test.json”。添加的-k参数时,请勿将-k参数放置在参数与参数值之间。 示例:将“test.json”数据文件中的数据导入至Elasticsearch集群,此集群未进行通信加密,其中一个节点内网访问地址为“192.168.0.90”,端口号为“9200”。其中test.json文件中的数据如下所示: 低于7.x版本 {"index": {"_index":"my_store","_type":"products"}} {"productName": "2019秋装新款文艺衬衫女装","size": "M"} {"index": {"_index":"my_store","_type":"products"}} {"productName": "2019秋装新款文艺衬衫女装","size": "L"} 7.x版本及高于7.x版本 {"index": {"_index":"my_store"}} {"productName": "2019秋装新款文艺衬衫女装","size": "M"} {"index": {"_index":"my_store"}} {"productName": "2019秋装新款文艺衬衫女装","size": "L"} 导入数据的操作步骤如下所示: 可执行以下命令,创建my_store索引。 低于7.x版本 curl -X PUT http://192.168.0.90:9200/my_store -H 'Content-Type: application/json' -d ' { "settings": { "number_of_shards": 1 }, "mappings": { "products": { "properties": { "productName": { "type": "text" }, "size": { "type": "keyword" } } } } }' 7.x版本及高于7.x版本 curl -X PUT http://192.168.0.90:9200/my_store -H 'Content-Type: application/json' -d ' { "settings": { "number_of_shards": 1 }, "mappings": { "properties": { "productName": { "type": "text" }, "size": { "type": "keyword" } } } }' 执行以下命令,导入test.json文件中的数据。 curl -X PUT "http://192.168.0.90:9200/_bulk" -H 'Content-Type: application/json' --data-binary @test.json 本案例回显如下信息,表示数据导入成功。 {"took":204,"errors":false,"items":[{"index":{"_index":"my_store","_type":"_doc","_id":"DJQkBIwBbJvUd2769Wi-","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1,"status":201}},{"index":{"_index":"my_store","_type":"_doc","_id":"DZQkBIwBbJvUd2769Wi_","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":1,"_primary_term":1,"status":201}}]}
  • 安装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目录下。
  • 导入流程图 图2 并行导入流程 表1 流程说明 流程 说明 子任务 上传数据至OBS 在OBS服务器上规划存储路径,并上传数据文件。 详细请参见上传数据到OBS。 - 创建OBS外表 创建外表用于识别OBS服务器上的数据源文件。在OBS外表中保存了数据源在OBS服务器上的桶名、对象名、文件格式、存放位置、编码格式、数据间的分隔符等信息。 详细请参见创建OBS外表。 - 执行导入数据 在创建好外表后,通过INSERT语句,将数据快速、高效地导入到目标表中。 详细请参见执行导入数据。 - 处理错误表 在数据并行导入发生错误时,请根据错误信息,处理错误表,以保证导入数据的完整性。 - 优化查询效率 导入数据后,通过ANALYZE语句生成表统计信息。ANALYZE语句会将统计结果自动存储在系统表PG_STATISTIC中。执行计划生成器会使用这些统计数据,以生成最有效的查询执行计划。 -
  • 相关概念 数据源文件:存储有数据的TEXT、CSV、ORC、CARBONDATA、JSON文件。文件中保存的是待并行导入数据库的数据。 OBS:对象存储服务,是一种可存储文档、图片、影音视频等非结构化数据的云存储服务。向GaussDB(DWS)并行导入数据时,数据对象放置在OBS服务器上。 桶(Bucket):对OBS中的一个存储空间的形象称呼,是存储对象的容器。 对象存储是一种非常扁平化的存储方式,桶中存储的对象都在同一个逻辑层级,去除了文件系统中的多层级树形目录结构。 在OBS中,桶名必须是全局唯一的且不能修改,即用户创建的桶不能与自己已创建的其他桶名称相同,也不能与其他用户创建的桶名称相同。每个桶在创建时都会生成默认的桶ACL(Access Control List),桶ACL列表的每项包含了对被授权用户授予的权限,如读取权限、写入权限、完全控制权限等。用户需要对桶有相应的权限,才可以对桶进行操作,如创建、删除、显示、设置桶ACL等。 一个用户最多可创建100个桶,但每个桶中存放的总数据容量和对象/文件数量没有限制。 对象:是存储在OBS中的基本数据单位。用户上传的数据以对象的形式存储在OBS的桶中。对象的属性包括名称Key,Metadata,Data。 通常,将对象等同于文件来进行管理,但是由于OBS是一种对象存储服务,并没有文件系统中的文件和文件夹概念。为了使用户更方便进行管理数据,OBS提供了一种方式模拟文件夹。通过在对象的名称中增加“/”,如tpcds1000/stock.csv,tpcds1000可以等同于文件夹,stock.csv就可以等同于文件名,而对象名称(Key)仍然是tpcds1000/stock.csv、对象的内容就是stock.csv数据文件的内容。 Key:对象的名称(键),是经过UTF-8编码的长度大于0且不超过1024的字符序列,一个桶里的每个对象必须拥有唯一的对象键值。用户可使用“桶名+对象名”来存储和获取对应的对象。 Metadata:对象元数据,用来描述对象的信息。元数据又可分为系统元数据和用户元数据。这些元数据以键值对(Key-Value)的形式随http头域一起上传到OBS系统。 系统元数据由OBS系统产生,在处理对象数据时使用。系统元数据包括:Date、Content-length、last-modify、Content-MD5等。 用户元数据由用户上传对象时指定,是用户自己对对象的一些描述信息。 Data:对象的数据内容,OBS对于数据的内容是无感知的,即认为对象内的数据为无状态的二进制数据。 数据库普通表:数据库中的普通表,数据源文件中的数据最终并行导入到这些表中存储,包括行存表、列存表。 外表:用于识别数据源文件中的数据。外表中保存了数据源文件的位置、文件格式、编码格式、数据间的分隔符等信息。
  • 导入流程 图3 GDS并行导入流程 表1 流程说明 流程 说明 准备源数据。 准备需要导入数据库的源数据文件,并上传至数据服务器。 详细内容请参见准备源数据。 启动GDS。 在数据服务器上安装配置并启动GDS。 详细内容请参见安装配置和启动GDS。 创建外表。 创建外表用于识别数据源文件中的数据。外表中保存了数据源文件的位置、文件格式、存放位置、编码格式、数据间的分隔符等信息。 详细内容请参见创建GDS外表。 执行导入数据。 在创建好外表后,通过INSERT语句,将数据快速、高效地导入到目标表中。详细内容请参见执行导入数据。 处理错误表。 在数据并行导入发生错误时,请根据具体的错误信息进行处理,以保证导入数据的完整性。 详细内容请参见处理错误表。 优化查询效率。 导入数据后,通过ANALYZE语句生成表统计信息。ANALYZE语句会将统计结果自动存储在系统表PG_STATISTIC中。执行计划生成器会使用这些统计数据,以生成最有效的查询执行计划。 停止GDS 待数据导入完成后,登录每台数据服务器,分别停止GDS。 GDS的停止请参见停止GDS。
  • GDS并发导入 数据量大,数据存储在多个服务器上时,在每个数据服务器上安装配置、启动GDS后,各服务器上的数据可以并行入库。如图2所示。 图2 多数据服务器并行导入 GDS进程数目不能超过DN数目。如果超过,会出现一个DN连接多个GDS进程的情形,可能会导致部分GDS异常运行。 数据存储在一台数据服务器上时,如果GaussDB(DWS)及数据服务器上的I/O资源均还有可利用空间时,可以采用GDS多线程来支持并发导入。 GDS是根据导入事务并发数来决定服务运行线程数的,也就是说即使启动GDS时设置了多线程,也并不会加速单个导入事务。未做过人为事务处理时,一条INSERT语句就是一个导入事务。 综上,多线程的使用场景如下: 多表并发导入时,采用多线程充分利用资源及提升并发导入效率。 对数据量大的某一事实表的导入进行提速。 将该事实表对应的数据拆分为多个数据文件,通过多外表同时入库的方式实现多线程并发导入。注意需确保每个外表所能读取的数据文件不重复。
  • 概述 并行导入将存储在服务器普通文件系统中的数据导入到GaussDB(DWS)数据库中。暂时不支持将存储在HDFS文件系统上的数据导入GaussDB(DWS)。 并行导入功能通过外表设置的导入策略、导入数据格式等信息来识别数据源文件,利用多DN并行的方式,将数据从数据源文件导入到数据库中,从而提高整体导入性能。如图1所示: CN只负责任务的规划及下发,把数据导入的工作交给了DN,释放了CN的资源,使其有能力处理其他外部请求。 所有DN都参与数据导入,这样可以充分利用各设备的计算能力及网络带宽,提升导入效率。 外表灵活的OPTION设置,有利于在数据入库前对数据做预处理,例如非法字符替换、容错处理等。 图1 数据并行导入示意图 上图中所涉及的相关概念说明如下: CN(Coordinator):GaussDB(DWS)协调节点。在导入场景下,接收到应用或客户端的导入SQL指令后,负责任务的规划及下发到DN。 DN(Datanode):GaussDB(DWS)数据节点。接收CN下发的导入任务,将数据源文件中的数据通过外表写入数据库目标表中。 数据源文件:存有数据的文件。文件中保存的是待导入数据库的数据。 数据服务器:数据源文件所在的服务器称为数据服务器。基于安全考虑,建议数据服务器和GaussDB(DWS)集群处于同一内网。 外表Foreign Table:用于识别数据源文件的位置、文件格式、存放位置、编码格式、数据间的分隔符等信息。是关联数据文件与数据库实表(目标表)的对象。 目标表:数据库中的实表。数据源文件中的数据最终导入到这些表中存储,包括行存表和列存表。
  • 数据类型转换说明 当前用户导入到Hive/Spark的数据在HDFS存储为ORC文件格式,GaussDB(DWS)实际读取HDFS中的ORC文件,并对文件内的数据进行查询分析。 由于Hive/Spark支持的数据类型与GaussDB(DWS)自身支持的数据类型存在差异,在创建外表定义表字段时,您需要了解这两者之间数据类型的对应关系,具体如表1所示: 表1 数据类型匹配表 类型名称 GaussDB(DWS)的HDFS/OBS外表支持的字段类型 Hive表字段类型 Spark表字段类型 2字节整数 SMALLINT SMALLINT SMALLINT 4字节整数 INTEGER INT INT 8字节整数 BIGINT BIGINT BIGINT 单精度浮点数 FLOAT4 (REAL) FLOAT FLOAT 双精度浮点型 FLOAT8(DOUBLE PRECISION) DOUBLE FLOAT 科学数据类型 DECIMAL[p (,s)] 最大支持38位精度 DECIMAL 最大支持38位(Hive 0.11) DECIMAL 日期类型 DATE DATE DATE 时间类型 TIMESTAMP TIMESTAMP TIMESTAMP Boolean类型 BOOLEAN BOOLEAN BOOLEAN Char类型 CHAR(n) CHAR (n) STRING VarChar类型 VARCHAR(n) VARCHAR (n) VARCHAR (n) 字符串 TEXT(CLOB) STRING STRING
  • 创建外表 当完成获取MRS数据源连接的外部服务器信息和获取MRS数据源的HDFS路径后,就可以创建一个外表,用于读取MRS数据源数据。 创建外表的语法格式如下,详细的描述请参见(CREATE FOREIGN TABLE (SQL on Hadoop or OBS))。 CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [ { column_name type_name [ { [CONSTRAINT constraint_name] NULL | [CONSTRAINT constraint_name] NOT NULL | column_constraint [...]} ] | table_constraint [, ...]} [, ...] ] ) SERVER dfs_server OPTIONS ( { option_name ' value ' } [, ...] ) DISTRIBUTE BY {ROUNDROBIN | REPLICATION} [ PARTITION BY ( column_name ) [ AUTOMAPPED ] ] ; 例如,创建一个名为"foreign_product_info"的外表,对语法中的参数按如下描述进行设置: table_name 必选。外表的表名。 表字段定义 column_name:外表中的字段名。 type_name:字段的数据类型。 多个字段用“,”隔开。 外表的字段个数和字段类型,需要与MRS上保存的数据完全一致。定义字段的数据类型之前,您必须先了解数据类型转换说明。 SERVER dfs_server 外表的外部服务器名称,这个server必须存在。外表通过设置外部服务器,从而关联MRS数据源连接并从MRS集群读取数据。 此处应填写为通过获取MRS数据源连接的外部服务器信息查询到的“srvname”字段的值。 OPTIONS参数 用于指定外表数据的各类参数,关键参数如下所示。 format:必选参数。取值只支持“orc”。表示数据源文件的格式,只支持Hive的ORC数据文件。 foldername:必选参数。表示数据在HDFS的存储目录或数据文件路径。 如果是启用了Kerberos认证的MRS分析集群,请确保MRS数据源连接的MRS用户,拥有此目录的读取权限。 请按照获取MRS数据源的HDFS路径中的步骤获取HDFS路径,该路径作为foldername的参数值。 encoding:可选参数。外表中数据源文件的编码格式名称,缺省为utf8。 DISTRIBUTE BY 表示外表的数据读取方式。有以下两种方式供选择,在本例中选择ROUNDROBIN。 ROUNDROBIN:表示外表在从数据源读取数据时,GaussDB(DWS)集群每一个节点读取随机一部分数据,并组成完整数据。 REPLICATION:表示外表在从数据源读取数据时,GaussDB(DWS)集群每一个节点都读取一份完整数据。 语法中的其他参数 其他参数均为可选参数,用户可以根据自己的需求进行设置,在本例中不需要设置。 根据以上信息,创建外表命令如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 DROP FOREIGN TABLE IF EXISTS foreign_product_info; CREATE FOREIGN TABLE foreign_product_info ( product_price integer , product_id char(30) , product_time date , product_level char(10) , product_name varchar(200) , product_type1 varchar(20) , product_type2 char(10) , product_monthly_sales_cnt integer , product_comment_time date , product_comment_num integer , product_comment_content varchar(200) ) SERVER hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca OPTIONS ( format 'orc', encoding 'utf8', foldername '/user/hive/warehouse/demo.db/product_info_orc/' ) DISTRIBUTE BY ROUNDROBIN;
  • 获取MRS数据源连接的外部服务器信息 使用创建外部服务器的用户去连接其对应的数据库。 是否使用普通用户在自定义数据库中创建外表,请根据需求进行选择: 是 请先确保,您已按照手动创建外部服务器章节中的步骤,创建了普通用户dbuser和它的数据库mydatabase,并在mydatabase中手动创建了一个外部服务器。 使用用户dbuser通过GaussDB(DWS)提供的数据库客户端连接数据库mydatabase。 如果已经使用gsql客户端连接至数据库,可以直接执行如下命令进行用户和数据库切换: 1 \c mydatabase dbuser; 根据界面提示输入密码。 否 当您通过GaussDB(DWS)管理控制台创建MRS数据源连接时,数据库管理员dbadmin会在默认数据库postgres中自动创建一个外部服务器。因此,如果使用数据库管理员dbadmin在默认数据库postgres中创建外表,需要通过GaussDB(DWS)提供的数据库客户端工具连接数据库。例如,使用gsql客户端的用户通过如下命令连接数据库: 1 gsql -d postgres -h 192.168.2.30 -U dbadmin -p 8000 -W password -r 执行以下命令,查看已创建的MRS数据源连接的外部服务器信息。 1 SELECT * FROM pg_foreign_server; 也可以执行\desc+命令查看外部服务器信息。 返回结果如下: 1 2 3 4 5 6 srvname | srvowner | srvfdw | srvtype | srvversion | srvacl | srvoptions --------------------------------------------------+----------+--------+---------+------------+--------+--------------------------------------------------------------------------------------------------------------------- gsmpp_server | 10 | 13673 | | | | gsmpp_errorinfo_server | 10 | 13678 | | | | hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca | 16476 | 13685 | | | | {"address=192.168.1.245:25000,192.168.1.218:25000",hdfscfgpath=/MRS/8f79ada0-d998-4026-9020-80d6de2692ca,type=hdfs} (3 rows) 查询结果中,每一行代表一个外部服务器的信息。与MRS数据源连接相关联的外部服务器包含以下信息: srvname值包含“hdfs_server”字样以及MRS集群的ID,此ID与MRS管理控制台的集群列表MRS ID相同。 srvoptions字段中的address参数为MRS集群的主备节点的IP地址及端口。 您可以根据上述信息找到您所要的外部服务器,并记录下它的srvname和srvoptions的值。
  • 文件型数据标注状态 数据标注状态分为“未标注”和“已标注”。 未标注:仅导入标注对象(指待标注的图片、文本等),不导入标注内容(指标注结果信息)。 已标注:同时导入标注对象和标注内容,当前“自由格式”的数据集不支持导入标注内容。 为了确保能够正确读取标注内容,要求用户严格按照规范存放数据: 导入方式选择目录时,需要用户选择“标注格式”,并按照标注格式的要求存放数据,详细规范请参见标注格式章节。 导入方式选择manifest时,需要满足manifest文件的规范。 数据标注状态选择“已标注”,您需要保证目录或manifest文件满足相应的格式规范,否则可能存在导入失败的情况。 导入已标注的文件,导入完成后,请检查您导入的数据是否为已标注状态。
  • 表格数据集从OBS导入操作 ModelArts支持从OBS导入表格数据,即csv文件。 表格数据集导入说明: 导入成功的前提是,数据源的schema需要与创建数据集指定的schema保持一致。其中schema指表格的列名和类型,创建数据集时一旦指定,不支持修改。 从OBS导入csv文件,不会校验数据类型,但是列数需要跟数据集的schema保持一致。如果数据格式不合法,会将数据置为null,详见表3。 导入的csv文件要求如下:需要选择文件所在目录,其中csv文件的列数需要跟数据集schema一致。支持自动获取csv文件的schema。 ├─dataset-import-example │ table_import_1.csv │ table_import_2.csv │ table_import_3.csv │ table_import_4.csv
  • 前提条件 为方便操作,建议采用Linux操作系统的机器部署Logstash。 Logstash的下载路径为:https://www.elastic.co/cn/downloads/logstash-oss Logstash要求使用OSS版本,选择和CSS一致版本。 安装完Logstash后,再根据如下步骤导入数据。安装Logstash的操作指导,请参见:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html 安装Logstash之前,需要先安装JDK。在Linux操作系统中,您可以执行yum -y install java-1.8.0命令直接安装1.8.0版本JDK。在Windows操作系统中,您可以访问JDK官网,下载符合操作系统版本的JDK,并根据指导安装。 在“Logstash部署在弹性云服务器上时导入数据”场景中,请确保此弹性云服务器与接入的Elasticsearch集群在同一个VPC下。
  • 操作步骤 假设远端集群的待同步表名称是tbl_remote,用于数据同步的用户是user_remote,该用户须对表tbl_remote有访问权限;假设本地集群的待同步表名称是tbl_local。 创建server。 CREATE SERVER server_remote FOREIGN DATA WRAPPER GC_FDW OPTIONS( address '192.168.178.207:8000', dbname 'db_remote', username 'user_remote', password 'xxxxxxxx', syncsrv 'gsfs://192.168.178.129:5000|gsfs://192.168.178.129:5000' ); server_remote为server名称,供互联互通外表使用。 address为远端集群CN的IP地址和端口,仅允许填写一个地址。 dbname为远端集群的数据库名。 username为连接远端集群使用的用户名,注意该用户不能为系统管理员。 password为连接远端集群使用的用户名的密码。 syncsrv为GDS Server的IP地址和端口,如果有多个地址使用|分割,与GDS外表的location类似。 GaussDB(DWS)会对syncsrv所设置的GDS地址进行网络连接测试: 只能判断本地执行集群与GDS的网络情况,无法判断远端集群与GDS的网络情况,需要注意报错提示。 在移除不可用GDS后,从中选择不会导致业务hang的、数目适当的GDS进行数据同步。 创建互联互通外表。 CREATE FOREIGN TABLE ft_tbl( col_1 type_name, col_2 type_name, … ) SERVER server_remote OPTIONS ( schema_name 'schema_remote', table_name 'tbl_remote', encoding 'utf8' ); schema_name为远端集群表所属schema,如果该option缺省,则schema_name预设为该外表所在的schema。 table_name为远端集群表名,如果该option缺省,则table_name预设为该外表的表名。 encoding为远端集群的编码,如果该option缺省,则编码使用本地集群数据库的默认编码。 选项schema_name、table_name大小写敏感,必须与远端schema、table的名字大小写保持一致。 互联互通外表的列不允许带任何约束。 互联互通外表的列名、列类型必须与远端集群的表tbl_remote的列名和列类型完全一致。 SERVER须设置为步骤1中新建的server,必须包含syncsrv属性。 使用互联互通外表进行数据同步。 本地集群是目标集群时,发起数据同步业务: 全列全量数据同步: 1 INSERT INTO tbl_local SELECT * FROM ft_tbl; 全列过滤条件数据同步: 1 INSERT INTO tbl_local SELECT * FROM ft_tbl WHERE col_2 = XX; 部分列全量数据同步: 1 INSERT INTO tbl_local (col_1) SELECT col_1 FROM ft_tbl; 部分列过滤条件数据同步: 1 INSERT INTO tbl_local (col_1) SELECT col_1 FROM ft_tbl WHERE col_2 = XX; 本地集群是源集群时,发起数据同步业务: 单表数据同步: 1 INSERT INTO ft_tbl SELECT * FROM tbl_local; join结果集数据同步: 1 INSERT INTO ft_tbl SELECT * FROM tbl_local1 join tbl_local2 ON XXX; 如遇到报错连接失败,请检查server的信息确认两个集群是否已经相互连通。 如遇到报错GDS连接失败,请检查syncsrv指定的GDS Server是否都已经启动,且与两个集群所有节点可以网络连通。 如遇到报错表不存在,请检查外表的option信息是否正确。 如遇到报错列不存在,请检查外表的列名是否与源表一致。 如遇到报错列重复定义,请检查是否相应列名超长,若超长建议使用AS别名精简。 如遇到报错无法解析列类型,请检查语句中是否有列上表达式。 如遇到报错列信息不匹配,请检查外表的列信息是否与远端集群对应表的列信息是否一致。 如遇到报错语法不支持,请检查是否使用了Join、distinct、排序等复杂用法。 如遇到乱码,请检查两端数据库的实际编码是否一致。 当本地集群是源集群时,存在极小的概率出现数据成功同步到远端集群,但是本地集群返回执行失败的情况,针对这种情况建议校验同步数据记录数。 当本地集群是源集群时,通过事务块、子事务等控制的数据同步,需要总事务提交后才能查询到数据同步结果。 删除互联互通外表。 DROP FOREIGN TABLE ft_tbl;
  • 使用前准备 配置两个集群互连。 规划部署GDS服务器,确保所有的GDS服务器可以和上面配置的两个集群所有节点网络连通,即GDS服务器的安全组入方向要放通对应的GDS端口(例如5000)和DWS端口(默认8000)。部署GDS请参考安装配置和启动GDS。 启动GDS时,可指定任意目录作为数据中转的目录,例如/opt,启动命令示例如下: /opt/gds/bin/gds -d /opt -p 192.168.0.2:5000 -H 192.168.0.1/24 -l /opt/gds/bin/gds_log.txt -D -t 2