云服务器内容精选

  • 定位方式二:自定义 若定位信息通过位置/角元素文本文件(解算后的POS文件)或者通过专用的XML 格式,实景三维操作台支持的“定位方式”中选择“自定义” 即可自动读取图像位置路径,然后通过手动选择经度、纬度、高程来进行定位。 在上一步“成功导入照片组”界面,选择照片组,也可按住ctrl键进行多选,右键单击选择“选择定位”。 图5 导入定位信息-2 选择“EXIF”定位方式,选择完成后,单击弹窗中的“自定义”。 图6 自定义定位 自定义格式定位数据如下图,第一至第四列分别为照片名称、纬度(或 Y)、经度(或 X)、高度,分隔符可以是空格、制表符、逗号等。如果需要填入角元素,后面可以加上角元素的信息。 图7 自定义文件格式 设置照片位置信息,实景三维操作台可自动读取照片位置路径,文件名即可选择照片位置文件夹下的txt文件,单击打开。然后通过手动选择经度、纬度、高程来进行定位。 图8 设置照片位置信息 选择完成后,单击弹窗中的“确定”。 图9 导入定位信息-3 读取定位速度会根据照片数量进行计算,数据量大的读取速度会稍微缓慢,用户可耐心等待(通常1W 张照片导入速度在3min以内)。导入数据成功后,单击“应用”。 图10 读取定位信息成功界面-2 照片导入速度会根据照片数量进行计算,数据量大的导入速度会稍微缓慢,用户可耐心等待(通常1W 张照片导入速度在3min以内)。 图11 导入照片成功界面-3 没有定位信息也是可以进行空三以及重建的,定位时可选择EXIF 方式。只是空三及重建后的模型没有地理参考,无尺度信息。
  • 定位方式一:EXIF 若定位数据写入到照片中,实景三维操作台支持的“定位方式”中选择“EXIF” 即可自动读取。 在上一步“成功导入照片组”界面,选择照片组,也可按住ctrl键进行多选,右键单击选择“选择定位”。 图1 导入定位信息-1 选择“EXIF”定位方式,选择完成后,单击弹窗中的“确定”。 图2 EXIF定位-1 读取定位速度会根据照片数量进行计算,数据量大的读取速度会稍微缓慢,用户可耐心等待(通常1W 张照片导入速度在3min以内)。导入数据成功后,单击“应用”。 图3 读取定位信息成功界面 照片导入速度会根据照片数量进行计算,数据量大的导入速度会稍微缓慢,用户可耐心等待(通常1W 张照片导入速度在3min以内)。 图4 导入照片成功界面
  • 使用须知 如果导出数据时未勾选“生成单表文件”,则导出的数据文件后缀为“.zip”格式,此格式的数据文件暂不支持直接导入,需要解压后才可再次导入。 如果导出数据时勾选了“生成单表文件”,则导出的数据文件为每个单表的数据文件(“.sql”或者“.csv”格式),该情况下导出的数据文件可直接再次导入。 如果导出的MySQL 8.0实例表数量超过10万(5.7和5.6版本超过1万)时,使用导出数据库功能会报错表数量过多,无法导出数据。此时请使用导出SQL结果集功能。
  • 原因分析 MySQL5.0.3之前varchar(n)这里的n表示字节数。 MySQL5.0.3之后varchar(n)这里的n表示字符数,比如varchar(200),不管是英文还是中文都可以存放200个。 GaussDB(DWS)的varchar(n)这里的n表示字节数。 根据字符集,字符类型如果为gbk,每个字符占用2个字节;字符类型如果为utf8,每个字符最多占用3个字节。根据转换规则,同样的字段长度,会导致GaussDB(DWS)出现字段超长的问题。
  • 数据如何存储到数据仓库服务? GaussDB(DWS)支持多数据源高效入库,典型的入库方式如下所示。详细指导请参见导入数据。 从OBS导入数据。 数据上传到OBS对象存储服务中,再从OBS中导入,支持CSV,TEXT格式数据。 通过INSERT语句直接插入数据。 用户可以通过GaussDB(DWS)提供的客户端工具(gsql)或者JDBC/ODBC驱动从上层应用向GaussDB(DWS)写入数据。GaussDB(DWS)支持完整的数据库事务级别的增删改(CRUD)操作。这是最简单的一种方式,这种方式适合数据写入量不太大, 并发度不太高的场景。 从MRS导入数据,将MRS作为ETL。 通过COPY FROM STDIN方式导入数据。 通过COPY FROM STDIN命令写数据到一个表。 使用GDS从远端服务器导入数据到GaussDB(DWS)。 当用户需要将普通文件系统(例如,弹性云服务器)中的数据文件导入到GaussDB(DWS)时,可以使用GaussDB(DWS)提供的GDS导入数据的功能。 使用CDM迁移数据到GaussDB(DWS)。 父主题: 数据导入导出
  • 前提条件 已安装客户端,请参见。例如安装目录为“/opt/client”,以下操作的客户端目录只是举例,请根据实际安装目录修改。 各组件业务用户由MRS集群管理员根据业务需要创建,具体操作请参见。安全模式下,“机机”用户需要下载keytab文件,具体操作请参见。“人机”用户第一次登录时需修改密码。 服务端默认开启了SSL,需参考使用IoTDB客户端章节生成“truststore.jks”证书,并复制到“客户端安装目录/IoTDB/iotdb/conf”目录下。
  • 前提条件 已安装客户端,请参见。例如安装目录为“/opt/client”,以下操作的客户端目录只是举例,请根据实际安装目录修改。 各组件业务用户由MRS集群管理员根据业务需要创建,具体操作请参见。安全模式下,“机机”用户需要下载keytab文件,具体操作请参见。“人机”用户第一次登录时需修改密码。 服务端默认开启了SSL,需参考使用IoTDB客户端章节生成“truststore.jks”证书,并复制到“客户端安装目录/IoTDB/iotdb/conf”目录下。
  • 前提条件 创建或获取该任务中创建Loader作业的业务用户和密码。 确保用户已授权访问作业执行时操作的HDFS/OBS目录和数据。 确保用户已授权访问作业执行时操作的HBase表或phoenix表。 检查磁盘空间,确保没有出现告警且余量满足导入、导出数据的大小。 使用Loader从HDFS/OBS导入数据时,确保HDFS/OBS输入路径目录名、输入路径的子目录名及子文件名不能包含特殊字符/\"':;,中的任意字符。 如果设置的作业需要使用指定YARN队列功能,该用户需要已授权有相关YARN队列的权限。 设置任务的用户需要获取该任务的执行权限,并获取该任务对应的连接的使用权限。
  • 简介 Loader是实现MRS与外部数据源如关系型数据库、SFTP服务器、FTP服务器之间交换数据和文件的ETL工具,支持将数据或文件从关系型数据库或文件系统导入到MRS系统中。 Loader支持如下数据导入方式: 从关系型数据库导入数据到HDFS/OBS 从关系型数据库导入数据到HBase 从关系型数据库导入数据到Phoenix表 从关系型数据库导入数据到Hive表 从SFTP服务器导入数据到HDFS/OBS 从SFTP服务器导入数据到HBase 从SFTP服务器导入数据到Phoenix表 从SFTP服务器导入数据到Hive表 从FTP服务器导入数据到HDFS/OBS 从FTP服务器导入数据到HBase 从FTP服务器导入数据到Phoenix表 从FTP服务器导入数据到Hive表 从同一集群内HDFS/OBS导入数据到HBase MRS与外部数据源交换数据和文件时需要连接数据源。系统提供以下连接器,用于配置不同类型数据源的连接参数: generic-jdbc-connector:关系型数据库连接器。 ftp-connector:FTP数据源连接器。 hdfs-connector:HDFS数据源连接器。 oracle-connector:Oracle数据库专用连接器,使用row_id作为分区列,相对generic-jdbc-connector来说,Map任务分区更均匀,并且不依赖分区列是否有创建索引。 mysql-fastpath-connector:MYSQL数据库专用连接器,使用MYSQL的mysqldump和mysqlimport工具进行数据的导入导出,相对generic-jdbc-connector来说,导入导出速度更快。 sftp-connector:SFTP数据源连接器。 oracle-partition-connector:支持Oracle分区特性的连接器,专门对Oracle分区表的导入导出进行优化。 使用FTP数据源连接器时不加密数据,可能存在安全风险,建议使用SFTP数据源连接器。 建议将SFTP服务器、FTP服务器和数据库服务器与Loader部署在独立的子网中,以保障数据安全地导入。 与关系数据库连接时,可以选择通用数据库连接器(generic-jdbc-connector)或者专用数据库连接器(oracle-connector、oracle-partition-connector、mysql-fastpath-connector),专用数据库连接器特别针对具体数据库类型进行优化,相对通用数据库连接器来说,导出、导入速度更快。 使用mysql-fastpath-connector时,要求在NodeManager节点上有MySQL的mysqldump和mysqlimport命令,并且此两个命令所属MySQL客户端版本与MySQL服务器版本兼容,如果没有这两个命令或版本不兼容,请参考http://dev.mysql.com/doc/refman/5.7/en/linux-installation-rpm.html,安装MySQL client applications and tools。 使用oracle-connector时,要求给连接用户赋予如下系统表或者视图的select权限: dba_tab_partitions、dba_constraints、dba_tables 、dba_segments 、v$version、dba_objects、v$instance、SYS_CONTEXT函数、dba_extents、 dba_tab_subpartitions。 使用oracle-partition-connector时,要求给连接用户赋予如下系统表的select权限:dba_objects、dba_extents。
  • 操作步骤 以Hive客户端安装用户登录源端集群安装客户端的节点。 执行以下命令,切换到客户端安装目录,例如安装目录为“/opt/client”,请用户根据实际情况修改。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 如果集群开启了Kerberos认证,执行以下命令认证用户,否则跳过此步骤。 kinit Hive业务用户 执行以下命令登录源端集群的Hive客户端。 beeline 执行以下命令创建表“export_test”。 create table export_test(id int) ; 执行以下命令向表“export_test”中插入数据。 insert into export_test values(123); 在目标集群重复执行1-4,并执行以下命令创建存放表“export_test”导出后的HDFS路径。 dfs -mkdir /tmp/export 执行以下命令登录目标集群的Hive客户端。 beeline 导入导出表“export_test”。 使用Hive Import/Export对表数据迁移时,支持以下几种场景,可以根据实际情况选择合适的导入导出方式。 场景一:简单导出导入 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“export_test”中。 import from '/tmp/export'; 场景二 :在导入时重命名表 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“import_test”中。 import table import_test from '/tmp/export'; 场景三:导出分区数据并导入 在源端集群执行以下命令将表“export_test”的pt1和pt2分区导出到8创建的目录下。 export table export_test partition (pt1="in", pt2="ka") to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“export_test”中。 import from '/tmp/export'; 场景四:导出表数据并且将该数据导入到分区中 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“import_test”的pt1和pt2分区中。 import table import_test partition (pt1="us", pt2="tn") from '/tmp/export'; 场景五:导入表数据时指定表的Location 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“import_test”中,且该表的Location为“/tmp/export”。 import table import_test from '/tmp' location '/tmp/export'; 场景六:导入表数据为外部表 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到外部表“import_test”中。 import external table import_test from '/tmp/export'; 导出表/分区数据时,存放表/分区数据的HDFS路径需提前创建,且该目录为空,否则导出失败。 导出分区时,导出的表必须为分区表,且不支持导出同一个分区字段的多个分区值的数据;导入到表中分区时导入的表必须是分区表。 导入数据时需注意: 使用import from '/tmp/export';命令导入表是没有指定表名的场景,该场景导入的数据会保存到与源表名相同的表路径下,需注意以下两点: 如果目标集群上不存在与源集群上同名的表,在导入表的过程中会创建该表。 如果目标集群上已存在与源集群上同名的表,该表对应的HDFS目录下必须为空,否则导入失败。 使用import external table import_test from '/tmp/export';命令导入表会将导出的表导入到指定的表中,需注意以下两点: 如果目标集群上不存在与指定的表名相同的表,在导入表的过程中会创建该表。 如果目标集群上已存在与指定的表名相同的表,该表对应的HDFS目录下必须为空,否则导入失败。 “haclusterX”为新增的自定义参数“dfs.namenode.rpc-address.haclusterX”中的“haclusterX”
  • 操作场景 在大数据应用场景中,往往存在将Hive中的数据表迁移到另一个集群上,使用Hive的导入导出命令可以实现表级别数据迁移,即可使用Export命令将源集群的Hive表导出到目标集群的HDFS中,再在目标集群使用Import命令将导出的数据导入到相应的Hive表中。 本章节内容适用于MRS 3.2.0及之后版本。 Hive表导入导出功能目前不支持对加密表、HBase外部表、Hudi表、视图表、物化视图表进行导入导出操作。
  • 操作步骤 以Hive客户端安装用户登录源端集群安装客户端的节点。 执行以下命令,切换到客户端安装目录,例如安装目录为“/opt/client”,请用户根据实际情况修改。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 如果集群开启了Kerberos认证,执行以下命令认证用户,否则跳过此步骤。 kinit Hive业务用户 执行以下命令登录Hive客户端。 beeline 执行以下命令创建数据库“dump_db”。 create database dump_db; 执行以下命令切换到“dump_db”数据库。 use dump_db; 执行以下命令在“dump_db”中创建表“test”。 create table test(id int); 执行以下命令向表“test”中插入数据。 insert into test values(123); 执行以下命令将数据库“dump_db”设置为复制策略的源。 alter database dump_db set dbproperties ('repl.source.for'='replpolicy1'); 执行alter命令修改数据库属性时,用户需要对该数据库拥有对应权限。权限设置方式如下: 集群未启用Ranger鉴权,需登录FusionInsight Manager授予该用户所属角色管理员权限,详细操作请参考创建Hive角色章节。 集群启用了Ranger鉴权,需参考添加Hive的Ranger访问权限策略章节授予用户对应数据库的Repl Dump/Load操作权限。 删除设置了复制策略源的数据库时,需要先将该数据库的复制策略源设置为空,再对数据库执行删除操作,否则无法删除。将数据库复制策略源设置为空的命令如下: alter database dump_db set dbproperties ('repl.source.for'=''); 执行以下命令将“dump_db”导出到目标集群的“/user/hive/test”目录下。 repl dump dump_db with ('hive.repl.rootdir'='hdfs://haclusterX/user/hive/test'); “haclusterX”为新增的自定义参数“dfs.namenode.rpc-address.haclusterX”中的“haclusterX”。 指定导出目录时需要确保当前用户对该目录拥有读写权限。 以Hive客户端安装用户登录目标集群安装客户端的节点,并执行2-5。 执行以下命令将“/user/hive/test”目录下的“dump_db”数据库的数据导入到“load_db”数据库中。 repl load load_db from '/user/hive/repl'; 通过repl load导入数据库,指定数据库名称时需要注意以下情况: 指定的数据库不存在,在导入的过程中会创建对应的数据库; 指定的数据库已存在,且该数据库的“hive.repl.ckpt.key”属性值与导入的路径一致,则跳过导入操作。 指定的数据库已存在,但是该数据库下不存在任何表和functions,导入的过程中只将源数据库下的表导入到当前数据库中;如果该数据库下存在表或functions会导入失败。
  • 基本原理 下图展示了Stream load的主要流程,省略了一些导入细节。 ^ + | | | | 1A. User submit load to FE | | | +--v-----------+ | | FE | 5. Return result to user | +--+-----------+ | | | | 2. Redirect to BE | | | +--v-----------+ +---+Coordinator BE| 1B. User submit load to BE +-+-----+----+-+ | | | +-----+ | +-----+ | | | 3. Distrbute data | | | +-v-+ +-v-+ +-v-+ |BE | |BE | |BE | +---+ +---+ +---+ Stream load中,Doris会选定一个节点作为Coordinator节点。该节点负责接数据并分发数据到其他数据节点。您可以通过HTTP协议提交导入命令。如果提交到FE,则FE会通过HTTP redirect指令将请求转发给某一个BE。用户也可以直接提交导入命令给某一指定BE。导入的最终结果由Coordinator BE返回给用户。
  • 原因分析 创建OBS外表语句中的访问密钥AK和SK错误,会出现如下所示的错误信息: 1 ERROR: Fail to connect OBS in node:cn_5001 with error code: AccessDenied 账户OBS权限不足,对OBS桶没有读、写权限,会出现如下所示的错误信息: 1 dn_6001_6002: Datanode 'dn_6001_6002' fail to read OBS object bucket:'obs-bucket-name' key:'xxx/xxx/xxx.csv' with OBS error code:AccessDenied message: Access Denied 默认情况下,您不具备访问其他账号的OBS数据的权限,此外,IAM用户(相当于子用户)也不具备访问其所属账号的OBS数据的权限。
  • 处理方法 创建OBS外表语句中的访问密钥AK和SK错误 请获取正确的访问密钥AK和SK,写入创建OBS外表的SQL语句中。获取访问密钥的步骤如下: 登录GaussDB(DWS)管理控制台。 将鼠标移至右上角的用户名,单击“我的凭证”。 进入“我的凭证”后,在左侧导航树单击“访问密钥”。 在访问密钥页面,可以查看已有的访问密钥ID(即AK)。 如果要同时获取AK和SK,单击“新增访问密钥”创建并下载访问密钥。 账户OBS权限不足,对OBS桶没有读、写权限 您必须给指定的用户授予所需的OBS访问权限: 通过OBS外表导入数据到GaussDB(DWS)时,执行导入操作的用户必须具备数据源文件所在的OBS桶和对象的读取权限。 通过OBS外表导出数据时,执行导出操作的用户必须具备数据导出路径所在的OBS桶和对象的读取和写入权限。 有关配置OBS权限的具体操作,请参见《对象存储服务控制台指南》中的配置桶ACL和“配置对象ACL”章节。