Cassandra 使用表定义创建物化视图

Cassandra 使用表定义创建物化视图

物化视图被定义为一个数据库对象,它包含了特定查询的结果。它可以被称为表的子集。基础表中的任何更改都会在物化视图中反映出来。

语法

CREATE MATERIALISED VIEW view_name
AS SELECT * FROM table_name 
WHERE column_name IS NOT NULL
PRIMARY KEY (provide_primary_key)

在这里,

  • view_name是物化视图的名称,

  • table_name是基表的名称,

  • column_name是列的名称,

  • provide_primary_key是基表的主键。

示例1

在这个例子中,我们将介绍如何为表创建一个物化视图。

步骤

  • 步骤1 − 创建一个keyspace

  • 步骤2 − 在keyspace中创建一个表

  • 步骤3 − 在keyspace中创建一个物化视图

  • 步骤4 − 从表中选择数据

  • 步骤5 − 验证值不能为空

  • 步骤6 − 提供主键

  • 步骤7 − 将值插入表中

  • 步骤8 − 从表中选择值以获得期望的输出

代码

CREATE KEYSPACE position WITH REPLICATION= {'class': 'simplestrategy','replication_factor':1}; #keyspace is created 
CREATE TABLE position.employee
(e_id int,e_name char(50),dept char(50),salary int)
#table created inside keyspace
CREATE MATERIALISED VIEW position.cell #materialised view named cell is created
AS SELECT e_id,e_name,dept,salary FROM employee #data is selected 
WHERE e_id IS NOT NULL AND e_name IS NOT NULL #verifying that primary  key values must not be null
PRIMARY KEY (e_id);#primary key provided
INSERT INTO employee values(1,'rahul','developer',40000),
(2,'monu','hr',50000),
(3,'aman','consulting',60000);#data is inserted
SELECT * FROM cell;

输出

e_id e_name dept salary
1 rahul developer 40000
2 monu hr 50000
3 aman consulting 60000

示例2

在这个示例中,我们将要看到主键的影响,以创建一个有效的物化视图。

在这里,我们首先要创建一个带有已知主键的表。

输入表

PLANT

P_name fruit taste
mango_tree mango sweet
lemon_tree lemon sour
apple_tree apple sweet

P_name = primary key

案例1 - 允许物化视图

步骤

  • 步骤1 - 创建物化视图

  • 步骤2 - 从基表中选择值

  • 步骤3 - 验证值不能为空

  • 步骤4 - 提供主键

  • 步骤5 - 选择物化视图的值

代码

CREATE MATERIALISED VIEW nature AS #materialised view created
SELECT * FROM plant #value selected
WHERE p_name IS NOT NULL #condition check for not null
PRIMARY KEY (p_name);# primary key provided
SELECT * FROM nature;

输出

Nature

P_name fruit taste
mango_tree mango sweet
lemon_tree lemon sour
apple_tree apple sweet

情况2 − 不允许使用物化视图 −

步骤

  • 步骤1 − 创建物化视图

  • 步骤2 − 从基本表选择值

  • 步骤3 − 验证值不为null

  • 步骤4 − 提供主键

代码

CREATE MATERIALISED VIEW nature AS#materialised view created
SELECT * FROM plant#value selected 
WHERE p_name IS NOT NULL AND fruit IS NOT NULL  #condition check for not null
PRIMARY KEY (fruit);# primary key provided

输出

Invalid Primary key

结论

创建物化视图就像创建一个表的子集,以包含特定查询的结果。在第一个例子中,我们通过创建键空间来创建物化视图,而在第二个例子中,我们专注于创建有效的物化视图,并有两种情况:情况1允许创建物化视图,情况2不允许创建,因此我们也发现了主键的重要性。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程