表类型
Paimon支持的表类型:
- 主键表:带有主键的Paimon数据表。
- 无主键表:没有主键的Paimon数据表。
- 视图:需要元存储,SQL中的视图是一种虚拟表。
- 格式表:文件格式表是指包含多个形同格式文件的目录,在此表上的操作允许读取或写入这些文件,和Hive表兼容。
- 对象表:为指定对象存储目录中的非结构化数据对象提供元数据索引。
- 实体化表:旨在简化批处理和流数据管道,提供一致性的开发体验。
主键表
主键由一组列组成,这些列包含每条记录的唯一值,Paimon通过对每个桶中的主键进行排序来强制数据排序,允许流式更新和流式变更日志读取。
主键的定义类似于标准SQL,因为它确保在批处理查询期间同一主键只有一个数据条目。
Flink SQL:
CREATE TABLE my_table (
a INT PRIMARY KEY NOT ENFORCED,
b STRING
) WITH (
'bucket'='8'
)
无主键表
如果一张表没有定义主键,则它是一张追加表,与主键表相比,它不能直接接收变更日志,无法通过流upsert
来直接更新数据,它只能从追加数据来接收传入的数据。
但是,它也支持批处理SQL:DELETE
、UPDATE
和MERGE-INTO
。
CREATE TABLE my_table (
a INT,
b STRING
)
视图
当元存储支持视图时则支持视图,例如:Hive元存储。如果没有元存储,则只能使用临时视图,该视图只存在于当前会话中,这里主要描述持久视图。
视图当前只保存原始SQL,如果需要跨引擎使用视图,可以编写跨引擎SQL语句。
Flink SQL:
CREATE VIEW [IF NOT EXISTS] [catalog_name.][db_name.]view_name
[( columnName [, columnName ]* )] [COMMENT view_comment]
AS query_expression;
DROP VIEW [IF EXISTS] [catalog_name.][db_name.]view_name;
SHOW VIEWS;
SHOW CREATE VIEW my_view;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。