了解数据目录、数据库和表
Flink支持动态数据类型,可以在运行时定义数据结构,不需要事先定义元数据。
数据库
数据库是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。数据库通常用于存储、检索和管理结构化数据,由多个数据表组成,这些数据表通过键和索引相互关联。
表
表是数据库最重要的组成部分之一,它由行和列组成。每一行代表一个数据项,每一列代表数据的一个属性或特征。表用于组织和存储特定类型的数据,使得数据可以被有效地查询和分析。
数据库是一个框架,表是其实质内容。一个数据库包含一个或者多个表。
用户可通过管理控制台或SQL语句创建数据库和表,其中SQL语句的操作方法请参见创建数据库、创建OBS表和创建DLI表等。本章节介绍在管理控制台创建数据库和表的操作步骤。
创建数据库和表时,有权限控制,需要对其他用户授权,其他用户才可查看该用户新建的数据库和表。
表的元数据
元数据(Metadata)是用来定义数据类型的数据。主要是描述数据自身信息,包含源、大小、格式或其它数据特征。数据库字段中,元数据用于诠释数据仓库的内容。
创建表时,会定义元数据,由列名、类型、列描述三列组成。
DLI支持创建的表类型
- DLI表
DLI表是存储在DLI数据湖中的数据表。支持多种数据格式,可以存储结构化、半结构化和非结构化数据。
DLI表的数据存储在DLI服务内部,查询性能更好,适用于对时延敏感类的业务,如交互类的查询等。
库表管理中表的列表页面,表类型为Managed的即代表DLI表。
- OBS表
OBS表的数据存储在OBS上,适用于对时延不敏感的业务,如历史数据统计分析等。
OBS表通常以对象的形式存储数据,每个对象包含数据和相关的元数据。
库表管理中表的列表页面,表类型为External,存储位置为OBS路径的即代表OBS表。
- 视图表
视图表(View)是一种虚拟表,它不存储实际的数据,而是根据定义的查询逻辑动态生成数据。视图通常用于简化复杂的查询,或者为不同的用户或应用提供定制化的数据视图。
视图表可以基于一个或多个表创建,提供了一种灵活的方式来展示数据,而不影响底层数据的存储和组织。
库表管理中表的列表页面,表类型为View的即代表视图表。
View只能通过SQL语句进行创建,不能通过“创建表”页面进行创建。视图中包含的表或视图信息不可被更改,如有更改可能会造成查询失败。
- 跨源表
跨源表是指能够跨越多个数据源进行查询和分析的数据表。这种表可以整合来自不同数据源的数据,提供统一的数据视图。
跨源表常用于数据仓库和数据湖架构中,允许用户执行跨多个数据源的复杂查询。
库表管理中表的列表页面,表类型为External,存储位置非OBS路径的即代表跨源表。
数据库和表的约束与限制
- 数据库
- “default”为内置数据库,不能创建名为“default”的数据库。
- DLI支持创建的数据库的最大数量为50个。
- 数据表
- DLI支持创建的表的最大数量为5000个。
- DLI支持创建表类型:
- Managed:数据存储位置为DLI的表。
- External:数据存储位置为OBS的表。
- View:视图,视图只能通过SQL语句创建。
- 跨源表:表类型同样为External。
- 创建DLI表时不支持指定存储路径。
- 数据导入
- 仅支持将OBS上的数据导入DLI或OBS中。
- 支持将OBS中CSV,Parquet,ORC,JSON和Avro格式的数据导入到在DLI中创建的表。
- 将CSV格式数据导入分区表,需在数据源中将分区列放在最后一列。
- 导入数据的编码格式仅支持UTF-8。
- 数据导出
- 只支持将DLI表(表类型为“Managed”)中的数据导出到OBS桶中,且导出的路径必须指定到文件夹级别。
- 导出文件格式为json格式,且文本格式仅支持UTF-8。
- 支持跨账号导出数据,即B账户对A账户授权后,A账户拥有B账户OBS桶的元数据信息和权限信息的读取权限,以及路径的读写权限,则A账户可将数据导出至B账户的OBS路径中。
表管理页面
在“数据管理”页面中,单击对应数据库名称或“操作”列中的“表管理”,可进入其表管理页面。
表管理页面显示用户在当前数据库中创建所有的表,您可以查看表类型,数据存储位置等信息。表列表默认按创建时间排列,创建时间最近的表显示在最前端。