Catalog、数据库和表
StarRocks 使用内部目录来管理内部数据,并使用外部目录来访问数据湖中的外部数据。存储在 StarRocks 中的数据保存在一个内部目录中,该目录由一个或多个数据库组成。数据库管理各种对象,包括表、物化视图和视图,以存储、管理和操作数据。StarRocks 采用权限系统,用于控制用户对对象执行操作的权限,从而增强数据安全性。
目录
目录分为内部目录和外部目录。每个集群只有一个内部目录 default_catalog
,可以包含一个或多个数据库。StarRocks 集群的内部目录管理加载到集群中的数据和物化视图。StarRocks 可以很好地用作数据仓库来存储数据,这可以显著提高查询性能,尤其是针对大规模数据的复杂查询分析。
另一方面,外部目录允许访问数据湖中的外部数据。您可以使用 StarRocks 作为查询引擎来直接查询湖中的数据,而无需将数据加载到 StarRocks 中。
数据库
数据库是数据对象的集合,例如表、视图和物化视图,用于存储、管理和操作数据。
表
表分为内部表和外部表。
内部表
内部表保存在内部目录中。内部表的数据存储在 StarRocks 中。内部表保存在内部目录下的数据库中。内部表由行和列组成,其中每一行代表一个记录,每一列代表一个数据行的属性或字段。
此处的内部表的行和列是逻辑概念。 StarRocks 使用列式存储表。 物理上,列中的数据被分离成数据块,编码,压缩,然后持久存储在磁盘上。
StarRocks 提供四种类型的内部表:主键表、重复键表、聚合表和唯一键表,以存储各种数据,例如原始日志、实时数据和聚合数据,以满足您不同的业务需求。
内部表采用两层数据分布策略,即分区 + 分桶,以实现均匀的数据分布。 更重要的是,每个桶的副本均匀地分布在 BE 上,以保证高数据可用性。
外部表
外部表保存在外部目录中。 外部表的数据实际上存储在外部数据源中。 StarRocks 仅存储这些外部表的元数据,您可以使用这些表查询外部数据源中的数据。
物化视图
物化视图是一种特殊的物理表,其中包含来自一个或多个基本表的预计算查询结果。 物化视图分为同步和异步物化视图。 异步物化视图更强大,因为它们可以存储来自多个基本表(内部表和外部表)的预计算结果,并支持各种聚合运算符。 当在基本表上执行复杂查询时,StarRocks 可以自动重用存储在物化视图中的预计算结果,以实现透明的查询加速、加速数据湖中的查询并建立数据建模。
视图
视图,或逻辑视图,是不保存任何数据的虚拟表。 视图仅显示对其他现有物理表执行查询的结果的数据。 定义视图的查询在每次查询中引用该视图时都会运行。
权限
权限决定了哪些用户可以对哪些对象执行哪些操作。 StarRocks 采用两种类型的权限模型:基于身份的访问控制和基于角色的访问控制。 您可以先将权限分配给角色,然后将角色分配给用户。 在这种情况下,权限通过角色传递给用户。 或者,您可以直接将权限分配给用户身份。
存储计算分离架构中的数据存储
自 v3.0 以来,StarRocks 引入了新的存储计算分离(共享数据)架构。 数据存储与 BE 分离。 数据持久存储在远程对象存储或 HDFS 中,而本地磁盘用于缓存热数据以加速查询。