云服务器内容精选

  • 原因分析 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)。 父主题: 数据导入导出
  • 操作步骤 以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会导入失败。
  • 原因分析 创建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”章节。
  • 数据仓库可以存储多少业务数据? 数据仓库集群每个节点默认能够支持1.49TB、2.98TB、4.47TB、160GB、1.68TB、13.41TB六种规格的存储容量,一个集群支持的节点数范围为3~256,集群总的存储容量随集群规模等比例扩充。 为增强可靠性,每个节点都有一个副本,副本会占用一半的存储空间,选择容量时副本容量会自动翻倍存储。 数据仓库系统会备份数据,生成索引、临时缓存文件、运行日志等内容,并占用存储容量。每个节点实际存储的数据,大致为总存储容量的一半。 父主题: 数据导入导出
  • 问题现象 ECS服务器部署logstash,然后推送数据到华为云es报错,错误信息如下: LogStash::Outputs::ElasticSearch::HttpClient::Pool::BadResponseCodeError: Got response code '500' contacting Elasticsearch at URL 'https://192.168.xx.xx:9200/_xpack'。