【Hive实战】Hive治理方向探讨(请留意见)

这篇具有很好参考价值的文章主要介绍了【Hive实战】Hive治理方向探讨(请留意见)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hive治理方向探讨

全篇数据已20230618分区的数据为准

Hive治理项

治理临时性质的表

  1. 临时表未及时清理,或按时间维度建表(亦是分区表类)
  2. 临时属性却以常规表标记。

诉求: 能够更好的识别出临时表,对超期临时表进行删除程序。

控制分区表的分区数量和分区层级

内部表的分区表数量 99,709

内部表的非分区表数量 222,555

外部表的分区表数量 7,842

外部表的非分区表数量 719

表类型分布数量

表类型 表数量 占比
MANAGED_TABLE 322264 97.28%
VIRTUAL_VIEW 446 0.13%
INDEX_TABLE 3 -
EXTERNAL_TABLE 8561 2.58%

hive分区数量分布情况

按时间(天)的维度进行计算分区数区间

时间区间 分区数区间 表数量 占比
半年(6个月) [1,180] 29148 34.33%
1年 [181,365] 5914 6.96%
2年 [366,730] 12069 14.21%
3年 [731,1095] 12314 14.50%
5年 [1096,1825] 18476 21.76%
10年 [1826,3650] 5751 6.77%
20年 [3651,7300] 401 0.47%
30年 [7301,10950] 156 0.18%
30年以上 [10950,+∞] 687 0.81%
目前5年以上数据定义为存疑 [1826,+∞] 6995 8%

hive分区表的层级分布情况

分区层级 此层级的表数量 分区级别下的分区数
1 105475 74891729
2 2072 8241483
>2 7 2141

超过2层分区级别的分区表

TBL_NAME OWNER PART_LEVEL

诉求: 识别出分区的数量和分区的层级,对数据异常的分区表(分区数量超过1826个,分区层级超过2层的)进行处理。

原则上分区层级不超过2层,单个表(1级分区)的最大分区数不超过2000,单个表(2级分区)的最大分区数不超过5000。

限制建表时使用的存储格式

存储格式

  • 低效存储格式(TextInputFormatRCFileInputFormat

  • 废弃存储格式(DeprecatedLzoTextInputFormat,DeprecatedRawMultiInputFormat

  • 无格式

INPUT_FORMAT分布情况

INPUT_FORMAT类 数量 占比
com.hadoop.mapred.DeprecatedLzoTextInputFormat 183962 0.220%
com.twitter.elephantbird.mapred.input.DeprecatedRawMultiInputFormat 7889 0.009%
org.apache.hadoop.hive.ql.io.orc.OrcInputFormat 29966343 35.902%
org.apache.hadoop.mapred.TextInputFormat 18777680 22.497%
org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat 67633 0.081%
************************************************************1 6252676 7.491%
org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat 2522173 3.022%
org.apache.hadoop.hive.ql.io.RCFileInputFormat 25427575 30.464%
org.elasticsearch.hadoop.hive.EsHiveInputFormat 3 -
org.apache.hadoop.mapred.SequenceFileInputFormat 15274 0.018%
************************************************************ 2 9643 0.012%
************************************************************ 3 2297 0.003%
************************************************************ 4 228137 0.273%
************************************************************ 5 3023 0.004%
1982 0.002%

OUTPUT_FORMAT分布情况

OUTPUT_FORMAT类 数量 占比
org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat 25443778 30.485%
org.elasticsearch.hadoop.hive.EsHiveOutputFormat 4 0.000%
org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat 67633 0.081%
org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat 29966344 35.903%
org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat 15556 0.019%
org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat 13356 0.016%
org.apache.hadoop.hive.ql.io.HiveNullValueSequenceFileOutputFormat 7889 0.009%
org.apache.hadoop.hive.ql.io.RCFileOutputFormat 25427575 30.465%
org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat 2522173 3.022%
1982 -

分区的格式为空的内部表

TBL_NAME OWNER TBL_TYPE

格式为空的非分区的内部表

TBL_NAME OWNER TBL_TYPE

诉求

  • 控制文件格式的选项,若无特殊需求,以ORC和Parquet类的格式为主。

    数据一般按以下结构进行分层存储:

    • 贴源层:该层是将数据源中的数据直接抽取过来的,数据类型以文本为主,需要保持数据原样。数据不会发生变化,在初次清洗之后被读取的概率也不大,可以采用ORC格式文件。

    • 加工汇总层:该层是数仓的数据加工组织阶段,会做一些数据的清洗和规范化的操作,比如去除空数据、脏数据、离群值等。采用ORC能够较好支持该阶段的数据ACID需求。

    • 应用层:该层的数据是供数据分析和数据挖掘使用,比如常用的数据报表就是存在这里。此时的数据已经具备了对外部的直接使用的能力。数据的可能具备了一定层度的结构化,而Parquet在实现复杂的嵌套结构方面,比ORC更具有优势。所以该层一般采用Parquet。

      主要考虑的因素

      • 数据的变更性
      • 数据的结构复杂性
      • 数据的读写效率性

表或分区记录的location对应的HDFS路径实际不存在

可参考里面的语句参考

诉求:这样情况的表或分区是否已停止使用,如果不使用了,就删除。若使用,则需要修正。

表级路径应是分区路径的前缀

内部分区表下的 分区不以表路径为前缀的分区数量268,651,对应的表数量 410

诉求:内部分区表分区location与表路径进行规整。

内部表使用非内部表路径

– 898条

诉求:内部表的表路径需要使用内部路径

外部表使用内部表路径

– 6640条

诉求:外部表的表路径不能使用内部路径

表的属性个数异常

表的基础属性在8个左右

表属性数量区间 属性数量区间内的表数量 表的占比 属性的数量 属性的占比
[0,8] 290338 87.64% 1383456 77.28%
(8,16] 40561 12.24% 395597 22.10%
(16,20] 170 0.05% 3137 0.18%
>20 205 0.06% 8025 0.45%

表属性个数Top20

TBL_NAME OWNER param_count TBL_TYPE

诉求:限制表的属性个数

按时间维度规整表

  1. 表的最后写入时间。(hdfs时间、最大分区的值等)
  2. 表的最后读取时间。

诉求:识别出长时间不读取的表,(多长时间没有读取)进行删除流程。

附录 分析语句

表分布语句文章来源地址https://www.toymoban.com/news/detail-499007.html

-- 不同表类型数量
SELECT  TBL_TYPE
       ,COUNT(1)
FROM hive_meta.hive_meta_tbls
WHERE day = '20230618'
GROUP BY  TBL_TYPE


-- 内部表的分区表 99709
SELECT  COUNT(1)
FROM hive_meta.hive_meta_tbls d
WHERE d.day = '20230618'
AND d.TBL_TYPE = 'MANAGED_TABLE'
AND d.TBL_ID IN (
SELECT  A.TBL_ID
FROM hive_meta.hive_meta_PARTITION_KEYS A
WHERE a.day = '20230618' );

-- 内部表的非分区表 
SELECT  COUNT(1)
FROM hive_meta.hive_meta_tbls d
WHERE d.day = '20230618'
AND d.TBL_TYPE = 'MANAGED_TABLE'
AND d.TBL_ID NOT IN (
SELECT  A.TBL_ID
FROM hive_meta.hive_meta_PARTITION_KEYS A
WHERE a.day = '20230618' );

-- 外部表的为分区表 7842
SELECT  COUNT(1)
FROM hive_meta.hive_meta_tbls d
WHERE d.day = '20230618'
AND d.TBL_TYPE = 'EXTERNAL_TABLE'
AND d.TBL_ID IN (
SELECT  A.TBL_ID
FROM hive_meta.hive_meta_PARTITION_KEYS A
WHERE a.day = '20230618' );

-- 外部表的为非分区表 719
SELECT  COUNT(1)
FROM hive_meta.hive_meta_tbls d
WHERE d.day = '20230618'
AND d.TBL_TYPE = 'EXTERNAL_TABLE'
AND d.TBL_ID NOT IN (
SELECT  A.TBL_ID
FROM hive_meta.hive_meta_PARTITION_KEYS A
WHERE a.day = '20230618' );

识别分区数

-- 分区数超出某个阈值的表信息
SELECT  d.TBL_NAME
       ,c.TBL_ID
       ,d.OWNER
       ,c.PART_SUM
FROM
(
	SELECT  b.TBL_ID
	       ,COUNT(*) AS PART_SUM
	FROM hive_meta.hive_meta_partitions b
	WHERE b.day = '20230618'
	GROUP BY  b.TBL_ID
) c
LEFT JOIN hive_meta.hive_meta_tbls d
ON c.TBL_ID = d.TBL_ID	
WHERE c.PART_SUM > 10000
AND d.day = '20230618';

-- 某个分区数量区间内的表数量
SELECT  count(1)
FROM
(
	SELECT  b.TBL_ID
	       ,COUNT(*) AS PART_SUM
	FROM hive_meta.hive_meta_partitions b
	WHERE b.day = '20230618'
	GROUP BY  b.TBL_ID
) c
LEFT JOIN hive_meta.hive_meta_tbls d
ON c.TBL_ID = d.TBL_ID	
WHERE c.PART_SUM > 180 and c.PART_SUM <=365
AND d.day = '20230618';

识别分区层级

-- 分区层级超出某个阈值的表信息
SELECT  b.TBL_NAME
       ,b.TBL_ID
       ,b.OWNER
       ,c.PART_LEVEL
FROM
(
	SELECT  A.TBL_ID
	       ,COUNT(A.PKEY_NAME) AS PART_LEVEL
	FROM hive_meta.hive_meta_PARTITION_KEYS A
	WHERE a.day = '20230618'
	GROUP BY  A.TBL_ID
) c
LEFT JOIN hive_meta.hive_meta_TBLS B
ON c.TBL_ID = B.TBL_ID
WHERE b.day = '20230618'
and c.PART_LEVEL>2

-- 某个分区层级内的表数
SELECT  count(1)
FROM
(
	SELECT  A.TBL_ID
	       ,COUNT(A.PKEY_NAME) AS PART_LEVEL
	FROM hive_meta.hive_meta_PARTITION_KEYS A
	WHERE a.day = '20230618'
	GROUP BY  A.TBL_ID
) c
LEFT JOIN hive_meta.hive_meta_TBLS B
ON c.TBL_ID = B.TBL_ID
WHERE b.day = '20230618'
and c.PART_LEVEL=2

-- 某个分区层级内的分区数
SELECT  COUNT(1)
FROM hive_meta.hive_meta_PARTITIONS b
WHERE b.day = '20230618'
AND b.TBL_ID IN (
SELECT  TBL_ID
FROM
(
	SELECT  A.TBL_ID
	       ,COUNT(A.PKEY_NAME) AS PART_LEVEL
	FROM hive_meta.hive_meta_PARTITION_KEYS A
	WHERE a.day = '20230618'
	GROUP BY  A.TBL_ID
) c
WHERE c.PART_LEVEL >2 )

存储相关

-- output_FORMAT分布情况
SELECT  output_FORMAT分布情况,count(1)
FROM hive_meta.hive_meta_sds
WHERE day = '20230618' group by output_FORMAT

-- input_FORMAT分布情况
SELECT   input_FORMAT,count(1)
FROM hive_meta.hive_meta_sds
WHERE day = '20230618' group by input_FORMAT

-- 分区的格式为空的内部表
SELECT  d.*
FROM hive_meta.hive_meta_tbls d
WHERE d.day = '20230618' and 
AND d.TBL_ID IN (
SELECT  b.TBL_ID
FROM hive_meta.hive_meta_partitions b
WHERE b.day = '20230618'
AND b.sd_id IN (
SELECT  a.sd_id
FROM hive_meta.hive_meta_sds AS a 
WHERE a.day = '20230618'
AND (a.output_FORMAT = '' or a.INPUT_FORMAT = '')) );

-- 格式为空的非分区的内部表
SELECT  b.*
FROM hive_meta.hive_meta_tbls b
WHERE b.day = '20230618'
AND b.sd_id IN (
SELECT  a.sd_id
FROM hive_meta.hive_meta_sds AS a
WHERE a.day = '20230618'
AND (a.output_FORMAT = '' or a.INPUT_FORMAT = ''));

编解码信息

  • 编解码表中存在不指向信息存储表的数据
SELECT  count(1)
FROM hive_meta.hive_meta_serdes a
WHERE serde_id not IN ( SELECT serde_id FROM hive_meta.hive_meta_sds b WHERE b.day = '20230618')
and a.day = '20230618'

存储路径

  • 表或分区记录对应的location为空
SELECT  count(1)
FROM hive_meta.hive_meta_sds a
WHERE a.day = '20230618' AND ( location is null or location = '' )

-- 查询没有存储路径的分区表
SELECT  d.*
FROM hive_meta.hive_meta_tbls d
WHERE d.day = '20230618'
AND d.TBL_ID IN (
SELECT  b.TBL_ID
FROM hive_meta.hive_meta_partitions b
WHERE b.day = '20230618'
AND b.sd_id IN (
SELECT  a.sd_id
FROM hive_meta.hive_meta_sds a
WHERE a.day = '20230618' AND ( location is null or location = '' )));

-- 查询没有存储路径的表--- 结果可能是视图

SELECT  d.*
FROM hive_meta.hive_meta_tbls d
WHERE d.day = '20230618' and d.TBL_TYPE in ('MANAGED_TABLE','EXTERNAL_TABLE')
AND d.sd_id IN (
SELECT  a.sd_id
FROM hive_meta.hive_meta_sds a
WHERE a.day = '20230618' AND ( location is null or location = '' ));

-- 不属于上述的2与3  '495136682','495137661','872437188'
SELECT  a.*
FROM hive_meta.hive_meta_sds a
WHERE a.day = '20230618'
AND ( location is null or location = '' )
AND sd_id not IN (
SELECT  d.sd_id
FROM hive_meta.hive_meta_tbls d
WHERE d.day = '20230618'
AND d.sd_id IN (
SELECT  a.sd_id
FROM hive_meta.hive_meta_sds a
WHERE a.day = '20230618'
AND ( location is null or location = '' )));


SELECT  d.*
FROM hive_meta.hive_meta_tbls d
WHERE d.day = '20230618'
AND d.sd_id IN (
SELECT  a.sd_id
FROM hive_meta.hive_meta_sds a
WHERE a.day = '20230618' AND  a.sd_id in ('495136682','495137661','872437188'));

SELECT  d.*
FROM hive_meta.hive_meta_partitions d
WHERE d.day = '20230618'
AND d.sd_id IN (
SELECT  a.sd_id
FROM hive_meta.hive_meta_sds a
WHERE a.day = '20230618' AND  a.sd_id in ('495136682','495137661','872437188'));
  • 表路径应是分区路径的前缀
SELECT  TBL_TYPE
       ,COUNT(1)
FROM hive_meta.hive_meta_TBLs a
WHERE a.day = '20230618'
GROUP BY  TBL_TYPE;

-- MANAGED_TABLE 322264
-- INDEX_TABLE 3
-- EXTERNAL_TABLE 8561
-- VIRTUAL_VIEW 446

-- 不易表路径为前缀的分区情况
SELECT  *
FROM
(
	SELECT  m.*
	       ,n.TBL_NAME
	       ,n.location AS tablelocation
           ,n.owner
	FROM
	(
		SELECT  a.TBL_ID
		       ,a.PART_ID
		       ,b.location
		       ,a.sd_id
		FROM hive_meta.hive_meta_partitions a, hive_meta.hive_meta_sds b
		WHERE a.sd_id = b.sd_id
		AND a.day = '20230618'
		AND b.day = '20230618' 
	) m
	LEFT JOIN
	(
		SELECT  c.TBL_ID
		       ,c.TBL_NAME
		       ,c.sd_id
               ,c.owner
		       ,d.location
		FROM hive_meta.hive_meta_TBLS c, hive_meta.hive_meta_sds d
		WHERE c.sd_id = d.sd_id
		AND d.day = '20230618'
		AND c.day = '20230618'  and c.TBL_TYPE='MANAGED_TABLE'
	) n
	ON m.TBL_ID = n.TBL_ID
) t
WHERE t.location not like concat(t.tablelocation, '%');
-- all 807946 
-- MANAGED_TABLE 268651
  • 内部表使用非内部表路径。
SELECT  c.TBL_ID
       ,c.TBL_NAME
       ,c.sd_id
       ,d.location
       ,c.owner
FROM hive_meta.hive_meta_TBLS c, hive_meta.hive_meta_sds d
WHERE c.sd_id = d.sd_id
AND d.day = '20230618'
AND c.day = '20230618'
AND c.TBL_TYPE = 'MANAGED_TABLE'
and d.location not like concat('%','/hive/warehouse/', '%');
-- 898条
  • 外部表使用内部表路径
SELECT  c.TBL_ID
       ,c.TBL_NAME
       ,c.sd_id
       ,d.location
       ,c.TBL_TYPE
       ,c.owner
FROM hive_meta.hive_meta_TBLS c, hive_meta.hive_meta_sds d
WHERE c.sd_id = d.sd_id
AND d.day = '20230618'
AND c.day = '20230618'
AND c.TBL_TYPE != 'MANAGED_TABLE'
AND d.location like concat('%', '/hive/warehouse/', '%');
-- 6640条

表属性

SELECT  e.TBL_ID
       ,e.OWNER
       ,e.TBL_NAME
       ,d.param_count
       ,e.TBL_TYPE
FROM
(
	SELECT  c.TBL_ID
	       ,COUNT(*) AS param_count
	FROM
	(
		SELECT  a.TBL_ID
		       ,b.PARAM_KEY
		FROM hive_meta.hive_meta_tbls a
		LEFT JOIN hive_meta.hive_meta_table_params b
		ON a.TBL_ID = b.TBL_ID
		WHERE a.day = '20230618'
		AND b.day = '20230618' 
	) c
	GROUP BY  c.TBL_ID
) d, hive_meta.hive_meta_tbls e
WHERE e.day = '20230618' and e.TBL_ID=d.TBL_ID
AND d.param_count > 100 

分区属性

-- 表下的分区
SELECT  e.TBL_ID
       ,e.OWNER
       ,e.TBL_NAME
       ,d.TART_NAME
       ,e.TBL_TYPE
       ,c.PART_ID
       ,c.PART_param_count
FROM
(
	SELECT  a.PART_ID
	       ,COUNT(*) AS PART_param_count
	FROM hive_meta.hive_meta_partitions a
	LEFT JOIN hive_meta.hive_meta_partition_params b
	ON a.PART_ID = b.PART_ID
	WHERE a.day = '20230505'
	AND b.day = '20230505'
	GROUP BY  a.PART_ID
) c, hive_meta.hive_meta_partitions d, hive_meta.hive_meta_tbls e
WHERE d.day = '20230618'
AND e.day = '20230618'
AND c.PART_ID = d.PART_ID
AND d.TBL_ID = e.TBL_ID
-- 分区
SELECT  COUNT(1)
FROM
(
	SELECT  a.PART_ID
	       ,COUNT(*) AS PART_PAR_SUM
	FROM hive_meta.hive_meta_partitions a
	LEFT JOIN hive_meta.hive_meta_partition_params b
	ON a.PART_ID = b.PART_ID
	WHERE a.day = '20230618'
	AND b.day = '20230618'
	GROUP BY  a.PART_ID
) c
WHERE PART_PAR_SUM > 0
AND PART_PAR_SUM <= 10;

附录 hive元数据数仓表

hive元数据数仓表hive元数据存储库对应表

数仓表名 hive元数据表名 注释
hive_meta_partition_keys partition_keys 分区字段的信息
hive_meta_sds sds 文件存储的基本信息
hive_meta_partitions partitions 分区的基本信息
hive_meta_table_params table_params 表的相关属性信息
hive_meta_db_privs db_privs 库的授权信息
hive_meta_tbl_privs tbl_privs 表的授权信息
hive_meta_tbls tbls 表的基础信息
hive_meta_columns_v2 columns_v2 字段的信息
hive_meta_dbs dbs 存储Hive中所有数据库的基本信息
hive_meta_serde_params serde_params 存储序列化的属性信息
hive_meta_partition_params partition_params 分区的相关属性信息
hive_meta_serdes serdes 存储序列化的基础信息

到了这里,关于【Hive实战】Hive治理方向探讨(请留意见)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据治理(十五):Ranger管理Hive安全

    文章目录   Ranger管理Hive安全 一、配置HiveServer2 1)在Hive服务端配置hive-site.xml 2)在每台Hadoop 节点配置core-site.xml,记得发送到所有节点 3)重启HDFS ,Hive ,在Hive服务端启动Metastore 和 HiveServer2服务 4)在客户端通过beeline连接Hive 二、安装Ranger-hive-plugin 1)远程发送编译好的“h

    2024年02月08日
    浏览(53)
  • 如何治理“网络暴力” 在人类文明不断发展向前的进程中,大数据时代应运而来。数学建模解题步骤,愚见而已,欢迎指错和探讨呀~

    题目可见文章:(20条消息) 如何治理“网络暴力” 在人类文明不断发展向前的进程中,大数据时代应运而来。 数学建模,90%成品论文,附附件、原题、代码 注,水平有限,非广告,仅供交流参考,欢迎朋友们指出问题~_区分a市网民的价值观念群体_feiwu小天才的博客-CSDN博客

    2024年02月03日
    浏览(56)
  • etcd实现大规模服务治理应用实战

         导读 :服务治理目前越来越被企业建设所重视,特别现在云原生,微服务等各种技术被更多的企业所应用,本文内容是百度小程序团队基于大模型服务治理实战经验的一些总结,同时结合当前较火的分布式开源kv产品etcd,不仅会深入剖析ectd两大核心技术Raft与boltdb的实

    2024年02月12日
    浏览(44)
  • Spring Cloud之Consul服务治理实战

    目录 1、Consul是什么 1.1概念 1.2 Consul下载 1.3 Consul启动 2、Consul使用场景 3、Consul优势 4、Consul架构及原理 4.1 整体架构图 4.2 通讯机制 4.3 健康检测 4.4如何保证数据一致性 5、搭建Consul环境 5.1 本地Consul搭建 5.2 集群Consul搭建 5.2.1 安装Consul 5.2.2 启动各 Consul Server节点 5.2.3 组成集

    2023年04月09日
    浏览(40)
  • MATLAB算法实战应用案例精讲-【数据分析】数据治理

    目录 前言 知识储备 数据域建设 一、元数据 二、主数据 三、数据标准

    2024年02月08日
    浏览(51)
  • Elasticsearch 线上实战问题及解决方案探讨

    1.1 问题描述 我有 1tb 的一个大索引若干,要迁移到另外一个新集群去,有没有好办法?reindex好像会中断...... reindex 是不是就算设置了频率也会莫名的中断,而且没地方查到错误? 1000多万 的数据,大概 80G  用 reindex 有时候都会莫名的断。 有时候是全的,有时候不全。 http

    2024年02月05日
    浏览(45)
  • 【ES实战】ES的CCR对多活支撑的探讨

    ES的 Cross-cluster replication(CCR)是什么 跨集群复制 (CCR) 功能可以将远程集群中的索引复制到本地集群。 此功能可用于一些常见的生产用例: 主集群发生故障时的灾难恢复。 辅助集群可以作为热备份 地理位置邻近,以便可以在本地提供读取服务 复制原理的注意点 复制关系是

    2024年02月04日
    浏览(30)
  • 云原生微服务治理经典套件之Spring Cloud Alibaba核心技术与实战案例

    送书第一期 《用户画像:平台构建与业务实践》 送书活动之抽奖工具的打造 《获取博客评论用户抽取幸运中奖者》 送书第二期 《Spring Cloud Alibaba核心技术与实战案例》 文章末尾有送书须知 ^ o ^,欢迎各位老板们! 云原生的微服务治理可以从以下几个方面进行: 服务注册与

    2024年02月08日
    浏览(118)
  • 新增长100人研讨会:快消零售专场探讨招商加盟数字化转型实战

    2024年2月2日下午,一场由纷享销客与杨国福集团联合主办的招商加盟数字化转型研讨会在上海成功举办。本次研讨会汇聚了众多快消零售业界的领军人物,共同探讨行业未来的新增长点。 会议伊始,杨国福集团数字化中心负责人王林林发表了主题演讲,深入剖析了杨国福在招

    2024年02月21日
    浏览(37)
  • 【Hive实战】Hive 物化视图

    始于Hive3.0.0 传统上,用于加速数据仓库查询处理的最强大的技术之一是预先计算相关的摘要或物化视图。 在Apache Hive 3.0.0中,主要是在项目中引入物化视图和基于这些物化的自动查询重写。特别是,物化视图可以原生存储在Hive中,也可以使用自定义存储处理程序存储在其他

    2024年02月12日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包