检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
verifyPartitionPath 配置读取Hive分区表时,是否过滤掉分区表分区路径不存在的分区。 “true”:过滤掉分区路径不存在的分区; “false”:不进行过滤。 false 在spark-submit命令提交应用时,通过“--conf”参数配置是否过滤掉分区表分区路径不存在的分区。 示例: spark-submit
PARTITON语句将数据加载到分区时,只能加载到静态分区。 动态分区:通过查询命令,将结果插入到某个表的分区时,可以使用动态分区。 动态分区通过在客户端工具执行如下命令开启: set hive.exec.dynamic.partition=true; 动态分区默认模式是“strict”
verifyPartitionPath 配置读取HIVE分区表时,是否过滤掉分区表分区路径不存在的分区。 “true”:过滤掉分区路径不存在的分区; “false”:不进行过滤。 false 在spark-submit命令提交应用时,通过“--conf”参数配置是否过滤掉分区表分区路径不存在的分区。 示例: spark-submit
b=xxx 原因分析 按照设定,任务应该只扫描b=xxx的分区,但是查看任务日志可以发现,实际上任务却扫描了所有的分区再来计算b=xxx的数据,因此任务计算的很慢。并且因为需要扫描所有文件,会有大量的OBS请求发送。 MRS默认开启基于分区统计信息的执行计划优化,相当于自动执行Analyze
数据库服务器 MySQL数据库的IP地址或域名。 192.168.1.110 端口 MySQL数据库的端口。 3306 数据库名称 MySQL数据库的名称。 sqoop 用户名 拥有MySQL数据库的读、写和删除权限的用户。 admin 密码 用户的密码。 - 使用Agent 是否选择通过Agent从源端提取数据。
toSQL(SQLText.java:339) 原因分析 drop partition的处理逻辑是将找到所有满足条件的分区,将其拼接起来,最后统一删除。由于分区数过多,拼删元数据堆栈较深,出现StackOverFlow异常。 解决办法 分批次删除分区。 父主题: 使用Hive
更新,导致Spark SQL查询不到新插入的数据。 对于存储类型为Parquet的Hive分区表,在执行插入数据操作后,如果分区信息未改变,则缓存的元数据信息未更新,导致Spark SQL查询不到新插入的数据。 解决措施:在使用Spark SQL查询之前,需执行Refresh操作更新元数据信息。
建表语句分区列为timestamp时,使用非标准格式的时间指定分区查询表统计失败 问题 建表语句分区列为timestamp时,使用非标准格式的时间指定分区查询表统计失败以及show partitions table结果编码不对。 执行desc formatted test_hiv
ClickHouse分区设计 合理设置分区键,控制分区数在一千以内,分区字段使用整型。 分区part数与查询性能关系 图1 分区part数与查询性能关系图 分区建议 建议使用toYYYYMMDD(pt_d)作为分区键,pt_d是date类型。 如果业务场景需要做小时分区,使用pt_d、
PARTITON语句将数据加载到分区时,只能静态分区。 动态分区:通过查询命令,将结果插入到某个表的分区时,可以使用动态分区。 动态分区通过在客户端工具执行如下命令来开启: set hive.exec.dynamic.partition=true; 动态分区默认模式是strict,也就
Spark SQL无法查询到ORC类型的Hive表的新插入数据 问题 为什么通过Spark SQL无法查询到存储类型为ORC的Hive表的新插入数据?主要有以下两种场景存在这个问题: 对于分区表和非分区表,在Hive客户端中执行插入数据的操作后,会出现Spark SQL无法查询到最新插入的数据的问题。
Spark SQL无法查询到ORC类型的Hive表的新插入数据 问题 为什么通过Spark SQL无法查询到存储类型为ORC的Hive表的新插入数据?主要有以下两种场景存在这个问题: 对于分区表和非分区表,在Hive客户端中执行插入数据的操作后,会出现Spark SQL无法查询到最新插入的数据的问题。
更新,导致Spark SQL查询不到新插入的数据。 对于存储类型为Parquet的Hive分区表,在执行插入数据操作后,如果分区信息未改变,则缓存的元数据信息未更新,导致Spark SQL查询不到新插入的数据。 解决措施:在使用Spark SQL查询之前,需执行Refresh操作更新元数据信息。
配置Hive表分区动态覆盖 配置场景 在旧版本中,使用insert overwrite语法覆写分区表时,只支持对指定的分区表达式进行匹配,未指定表达式的分区将被全部删除。在spark2.3版本中,增加了对未指定表达式的分区动态匹配的支持,此种语法与Hive的动态分区匹配语法行为一致。
在待修改项的“Operation”列单击“Action > Alter”,弹出的页面中修改Topic分区。 目前集群只支持增加分区操作,即修改的分区个数要大于原设置的分区个数。 单击“OK”完成修改。 父主题: 管理Kafka Topic
单击“Topics”,进入Topic管理页面。 在待修改项的“Operation”列单击“Action > Alter”,弹出的页面中修改Topic分区。 目前集群只支持增加分区操作,即修改的分区个数要大于原设置的分区个数。 单击“OK”完成修改。 父主题: 管理Kafka Topic
Hudi表分区设计规范 规则 分区键不可以被更新: Hudi具有主键唯一性机制,但在分区表的场景下通常只能保证分区内主键唯一,因此如果分区键的值发生变更后,会导致相同主键的行记录出现多条的情况。在以日期分区的场景,可采用数据的创建时间为分区字段,切记不要采用数据更新时间做分区。 当指
配置Hive表分区动态覆盖 配置场景 在旧版本中,使用insert overwrite语法覆写分区表时,只支持对指定的分区表达式进行匹配,未指定表达式的分区将被全部删除。在spark2.3版本中,增加了对未指定表达式的分区动态匹配的支持,此种语法与Hive的动态分区匹配语法行为一致。
Hive是否支持对同一张表或分区进行并发写数据 问题 为什么通过接口并发对Hive表进行写数据会导致数据不一致? 回答 Hive不支持对同一张表或同一个分区进行并发数据插入,这样会导致多个任务操作同一个数据临时目录,一个任务将另一个任务的数据移走,导致任务数据异常。解决方法是修改
配置Hive表不同分区分别存储至OBS和HDFS 操作场景 存算分离场景下,Hive分区表支持不同的分区分别指定不同的存储源,可以指定一个分区表中不同分区的存储源为OBS或者HDFS。 本特性仅适用于MRS 3.2.0及之后版本。此章节仅说明分区表指定存储源的能力,关于Hive如