视图 (View)
视图 (View) 是针对一个或多个表或者视图的查询,它是只读的。
平台中你可以创建三类视图:
- 视图 (View): 常规的视图,不会写入任何新的数据,所有的查询请求都是基于底层的表或视图进行计算。
- 物化视图 (Materialized View): 为了提升后面的查询速度, 将每次查询的增量结果进行保存。请参阅什么是物化视图?
- 流处理表 (Streaming Table): 同物化视图类似, 支持流式数据的处理和转换并将转换后的结果动态保存在表中;流处理表也支持自身的流式查询。请参阅什么是流处理表?
创建视图
创建视图需要具有所属的数据库的写权限。可以在选中的数据库页面创建视图,也可以通过SQL命令创建。
例如,使用SQL通过 person 表创建一个名为 person_view 的视图:
CREATE VIEW person_view AS SELECT name, age FROM person;
平台也支持使用Java、Scala或Python脚本来创建视图, 提升数据处理和转换的能力。上面的SQL等价于:
CREATE VIEW person_view LANGUAGE java AS $$
return spark.sql("SELECT name, age FROM person");
$$;
CREATE VIEW person_view LANGUAGE scala AS $$
spark.sql("SELECT name, age FROM person")
$$;
上面脚本可以使用 import 引入已经安装的包, 也可以在脚本中自定义函数。 Java 或 Python 脚本最后一行需要使用 return 返回 spark 的 一个 DataFrame 类的对象;Scala 脚本最后一行需要是 spark 的 一个 DataFrame 类的对象作为返回值。
使用 SQL 创建视图或脚本创建视图请参阅:
删除或修改视图
您必须拥有数据库的写权限才能删除视图。可以通过数据库的视图列表页删除视图,或使用SQL命令删除视图。例如,
DROP VIEW IF EXISTS person_view;
您必须拥有视图的写权限才能修改视图。可以通过视图页修改视图,或使用SQL命令修改视图。例如,
ALTER VIEW person_view RENAME TO person_age;
ALTER VIEW person_view AS SELECT avg(age) FROM person;
使用 SQL 删除视图或修改视图请参阅: