在砖Lakehouse的数据对象
砖Lakehouse组织与三角洲湖云存储的数据对象存储熟悉关系数据库、表和视图。该模型结合了许多的好处的企业数据仓库数据的可伸缩性和灵活性。BOB低频彩了解更多关于这个模型是如何工作的,以及对象之间的关系数据和元数据,这样您就可以应用最佳实践在设计和实现数据砖Lakehouse为您的组织。
在砖Lakehouse数据对象是什么?
砖Lakehouse架构结合与三角洲湖协议在云存储的数据对象存储元数据登记metastore。有五个主要砖Lakehouse中的对象:
目录:一个分组的数据库。
数据库或模式:对象的分组在一个目录中。数据库包含表、视图和函数。
表:行和列的集合对象存储中存储为数据文件。
视图:保存查询通常与一个或多个表或数据来源。
函数:保存逻辑返回标量值或一组行。
为保护对象的信息统一目录,看看可获得的对象模型。
什么是metastore ?
metastore包含所有的元数据定义lakehouse数据对象。砖提供了以下metastore选项:
统一目录metastore:统一目录提供集中式访问控制、审计、血统和数据发现能力。您创建统一目录metastores在砖账户层面,和一个metastore可以使用多个工作区。
每个目录metastore统一配置了一个根存储位置在GCS斗云在你的谷歌账户。在默认情况下使用这个存储位置来存储数据管理表。
在统一目录,默认数据是安全的。最初,用户没有访问metastore中的数据。可以授予访问metastore管理员或者一个对象的所有者。可获得的对象统一目录层次和特权是继承了下行。统一目录提供了一个地方管理数据访问政策。用户可以访问的数据在统一目录从任何工作区metastore连着。有关更多信息,请参见统一目录管理权限。
内置的蜂巢metastore(遗留):每个砖工作区包括一个内置的蜂巢metastore为管理服务。metastore的实例部署到每个集群和安全地访问元数据为每个客户从一个中央存储库工作区。
蜂巢metastore集中式数据治理模型提供了一个低于统一目录。默认情况下,集群允许所有用户访问所有数据管理的工作空间的内置蜂巢metastore除非表启用访问控制集群。有关更多信息,请参见蜂巢metastore表访问控制(遗留)。
访问控制表不存储帐户级别,因此他们必须单独配置为每个工作区。利用提供的集中和流线型的数据治理模型统一目录,砖建议你升级表由工作区管理的蜂巢metastore metastore统一目录。
外部蜂巢metastore(遗留):你也可以自己带metastore砖。砖集群可以连接到Apache蜂巢metastores现有外部。您可以使用访问控制表在外部metastore管理权限。访问控制表不存储在外部metastore,因此他们必须单独配置为每个工作区。砖建议你使用统一目录而不是它的简单性和account-centered治理模型。
不管所使用的metastore,砖家的所有表数据对象存储在云账户。
目录是什么?
目录是最高的抽象(或粗粒)砖Lakehouse关系模型。每个数据库将被关联到一个目录中。在metastore目录作为对象存在。
在引入统一目录之前,砖使用双重名称空间。目录是第三层统一目录命名空间模型:
catalog_name。database_name。table_name
内置的蜂巢metastore只支持一个目录,hive_metastore
。
什么是数据库?
数据库是数据对象的集合,如表或视图(也称为“关系”),和功能。在砖,术语“模式”和“数据库”是交替使用(而在许多关系系统,数据库是模式)的集合。
数据库将永远被关联到一个云对象存储位置。你可以指定一个位置
当注册一个数据库时,要记住:
的
位置
关联到一个数据库总是被认为是一个成功的位置。创建一个数据库不创建任何文件在目标位置。
的
位置
数据库将决定默认位置的数据登记的所有表的数据库。成功删除一个数据库将递归删除所有数据和文件存储在一个位置管理。
这个位置由数据库管理和数据文件之间的相互作用是非常重要的。为了避免意外删除数据:
不共享数据库位置跨多个数据库定义。
不注册一个数据库已经包含数据的位置。
数据生命周期管理独立于数据库,将数据保存到一个位置,不是嵌套在任何数据库的位置。
一个表是什么?
一个砖表是结构化数据的集合。δ表存储数据作为云对象存储上的文件和注册表的目录元数据中的metastore目录和模式。三角洲湖是表中创建的默认存储提供商砖,砖三角洲表中创建的所有表,默认情况下。因为δ表在云存储数据对象存储和通过metastore提供参考数据,用户在一个组织可以使用他们喜欢的api访问数据;砖,这包括SQL, Python, PySpark, Scala, R。
请注意,有可能砖不三角洲的表上创建表。这些表不是由三角洲湖,也不会提供δ的ACID事务和优化性能表。注册表落入这个类别包括表数据外部系统和注册表其他文件格式的数据湖。
请注意
的三角洲生活表区分生活表和现场直播表不是从表中执行的视角。
什么是管理的表?
砖管理元数据和数据管理表;当你删除一个表,你也删除底层数据。数据分析师和其他用户,主要工作在SQL可能更喜欢这种行为。管理表默认创建一个表。管理表的数据驻留在位置
数据库的登记。这管理关系数据位置和数据库意味着为了管理表移动到一个新的数据库,你必须重写所有的数据到新的位置。
有许多方法来创建管理表,包括:
创建表table_name作为选择*从another_table
创建表table_name(field_name1INT,field_name2字符串)
df。写。saveAsTable(“table_name”)
一个非托管表是什么?
砖仅为非托管(外部)管理元数据表;当你删除一个表,你不影响底层数据。总是指定一个非托管表位置
在表创建;你可以注册一个现有的数据文件的目录表或表时提供一个路径定义。因为独立管理数据和元数据,您可以重命名一个表或注册一个新数据库,而不需要任何数据。工程师通常喜欢非托管数据表和他们提供生产数据的灵活性。
有许多方法来创建非托管表,包括:
创建表table_name使用δ位置/道路/ /现有数据的
创建表table_name(field_name1INT,field_name2字符串)位置/ /空/目录/路径的
df。写。选项(“路径”,/ /空/目录/路径”)。saveAsTable(“table_name”)
什么是视图?
一个视图存储文本查询通常与一个或多个数据源或metastore中的表。在砖,视图是相当于一个火花DataFrame持续作为数据库中的一个对象。与DataFrames不同,你可以从任何查询视图砖产品的一部分,如果你允许这样做。创建一个视图不处理或写任何数据;只有注册的查询文本metastore相关联的数据库中。
暂时的观点是什么?
一个临时视图范围有限,持久性和不是注册一个模式或目录。临时的生命周期视图基于不同环境的使用:
在笔记本和工作,临时视图范围到笔记本或脚本的水平。他们不能引用外部的笔记本中宣称,和将不再存在时,笔记本从集群分离。
在砖SQL,临时视图范围查询。多个语句在同一个查询可以使用临时观点,但它不能被其他查询中引用,即使在相同的仪表板。
全局临时观点局限于集群级别和笔记本电脑之间可以共享或共享计算资源的工作。砖建议使用适当意见而不是全局临时表acl的观点。
一个函数是什么?
函数允许您将用户定义的逻辑与数据库相关联。函数可以返回标量值或设置的行。函数是用于聚合数据。砖允许您保存的各种语言的功能,根据您的执行上下文,使用SQL被广泛支持。您可以使用函数来提供管理访问自定义逻辑在各种语境下的砖产品。
关系对象在三角洲生活工作表怎么样?
三角洲生活表使用声明性语法来定义和管理DDL, DML、和基础设施的部署。三角洲生活表使用一个“虚拟模式”的概念在逻辑计划和执行。三角洲生活表可以在砖环境与其他数据库交互,和δ生活表可以发布和持续表指定一个目标数据库查询其他的管道配置设置。
所有表中创建生活表δ表。当使用统一目录与达美住表,所有表统一目录管理表。如果不活跃,统一编目表可以声明为管理或非托管表。
视图可以宣布在三角洲生活表,这些应该被认为是临时视图内的管道。临时表在三角洲住表是一个独特的概念:这些表保存数据存储,但不公布数据到目标数据库中。
等操作应用变化成
同时,将注册表和视图数据库;表名会用下划线(_
)和视图将表名宣布的目标应用变化成
操作。隐藏视图查询相应的表来实现结果。