当前位置: 首页 > article >正文

Hive 的数据存储单元结构

按照数据的粒度顺序,数据存储单元数据被组织为:

  • 数据库 Databases

  • 数据表 Tables

  • 分区 Partitions

  • 桶或簇 Buckets (or Clusters)

数据库 Databases

与传统的关系型数据库一样,数据库是一个名称空间,作用是避免表、视图、分区、列等的命名冲突。数据库还可用于为用户或用户组实施安全性。

数据表 Tables

具有相同模式的同质数据单元。下边是一个 page_views 表的示例,其中每一行可以由以下列(模式,schema)组成:

  • timestamp — 它是 INT 类型,对应于查看页面时的UNIX时间戳
  • userid — 它是 BIGINT 类型,用于标识查看页面的用户
  • page_url — 它是捕获页面位置的字符串类型 STRING
  • referer_url — 它是一个字符串 STRING,用于捕获用户到达当前页的位置
  • IP — 它是一种字符串类型 STRING,用于捕获发出页面请求的 IP 地址

分区 Partitions

每个表可以有一个或多个分区键,用于确定数据的存储方式。分区除了作为存储单元外,还允许用户有效地识别满足指定条件的行;例如,STRING 类型的 date_partition 分区和 STRING 类型的 country_partition 分区。

分区键的每个唯一值定义了表的一个分区。例如,“2009-12-23” 中的所有 “US” 数据都是 page_views 表的一个分区。因此,如果仅对 2009-12-23 的 “US” 数据运行分析,则只能对表的相关分区运行该查询,从而显著加快分析速度。

但是,请注意,仅仅因为一个分区被命名为 2009-12-23 并不意味着它包含所有或仅包含该日期的数据;分区以日期命名是为了方便;保证分区名称和数据内容之间的关系是用户的工作。

分区列(Partition columns)是虚拟列它们不是数据本身的一部分,而是在加载时派生

桶或簇 Buckets (or Clusters)

每个分区中的数据又可以基于表的某一列的散列函数的值被划分为桶。例如, page_views 表可能由 userid 绑定,userid 是 page_views 表的除 partitions 列以外的列之一。这些可用于有效地对数据进行采样。


http://www.kler.cn/a/384711.html

相关文章:

  • 图数据库| 2 、大数据的演进和数据库的进阶——从数据到大数据、快数据,再到深数据
  • 软件设计师-上午题-14 信息安全(5分)
  • Uniapp去除顶部导航栏-小程序、H5、APP适用
  • 删除的域名购买还能使用嘛?
  • 队列实现约瑟夫环(数据结构实验报告1)
  • OpenHarmony 入门——ArkUI 自定义组件间的父子双向同步状态装饰器@Link语法(四)
  • 存储数据库的传输效率提升-ETLCloud结合HBASE
  • 《安全软件开发框架(SSDF) 1.1:降低软件漏洞风险的建议》解读(四)
  • Java项目实战II基于SpringBoot在线课程管理系统的设计与实现(开发文档+数据库+源码)
  • 特征检测与特征匹配方法笔记+代码分享
  • Supervisor的使用-ubuntu
  • 在OceanBase 中,实现自增列的4种方法
  • 练习题 - Django 4.x HTTP 网络协议使用示例和配置方法
  • OpenSSH 安全漏洞(CVE-2023-38408)解决方案
  • leetcode hot100【LeetCode 78. 子集】java实现
  • 船体平整如镜,玛哈特矫平机为航海安全保驾护航
  • Docker Compose部署Rabbitmq(Dockerfile安装延迟队列)
  • Vue 3 单元测试与E2E测试
  • github.io出现的问题及解决方案
  • FastAPI —— 请求参数验证
  • 中酱:健康生活的先行者
  • 【SpringCloud】Kafka消息中间件
  • 操作系统面试题
  • ssm060基于SSM的高校共享单车管理系统的设计与实现+vue(论文+源码)_kaic
  • 前端md5加密
  • 高级Python自动化运维:容器安全与网络策略的深度解析