在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 - 创建键空间

  • 步骤 2 - 在键空间中创建表

  • 步骤 3 - 在键空间中创建物化视图

  • 步骤 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 = 主键

情况 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;

输出

性质

P_name

fruit

taste

mango_tree

mango

sweet

lemon_tree

lemon

sour

apple_tree

apple

sweet

情况 2 - 不允许物化视图 -

算法

  • 步骤 1 - 创建物化视图

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

  • 步骤 3 - 验证值不为空

  • 步骤 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 不允许物化视图,并因此发现了主键的重要性。

更新于:2023年8月22日

71 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告