📜  在cassandra中使用CSV文件插入数据

📅  最后修改于: 2021-08-25 17:35:44             🧑  作者: Mango

在本文中,我们将讨论如何使用CSV文件将数据插入表中。我们还将借助示例介绍实现。让我们一一讨论。

先决条件– Cassandra简介

介绍 :
如果要批量存储数据,则从CSV文件插入数据是一种不错的方法。如果文件中有数据,则可以使用Cassandra中的COPY命令将数据直接插入数据库中。当您有一个非常大的数据库并且想要快速存储数据并且数据在CSV文件中时,这将非常有用,然后您可以直接插入数据。

句法 –
您可以看到COPY命令语法供您参考,如下所示。

COPY table_name [( column_list )]
FROM 'file_name path'[, 'file2_name path', ...] | STDIN
[WITH option = 'value' [AND ...]]

现在,让我们创建示例数据以实现该方法。

步骤1 :
创建键空间–数据
在这里,您可以使用以下cqlsh命令创建密钥空间,如下所示。

CREATE KEYSPACE data
 WITH REPLICATION = {  
  'class' : 'NetworkTopologyStrategy',  
  'datacenter1' : 1  
  } ;

第2步 :
创建Student_personal_data表–
在这里,您可以使用以下cqlsh命令来创建Student_personal_data表,如下所示。

CREATE TABLE data.Student_personal_data (  
 S_id UUID PRIMARY KEY,  
S_firstname text,  
S_lastname text,    
);

第三步:
创建CSV文件–
将以下给定的表视为CSV文件,即personal_data.csv。但是,实际上,您可以将数据插入CSV文件并将其保存在计算机驱动器中。

S_id(UUID) S_firstname S_lastname
e1ae4cf0-d358-4d55-b511-85902fda9cc1 Ashish christopher
e2ae4cf0-d358-4d55-b511-85902fda9cc2 Joshua D
e3ae4cf0-d358-4d55-b511-85902fda9cc3 Ken N
e4ae4cf0-d358-4d55-b511-85902fda9cc4 Christine christopher
e5ae4cf0-d358-4d55-b511-85902fda9cc5 Allie K
e6ae4cf0-d358-4d55-b511-85902fda9cc6 Lina M

第四步 :
从CSV文件插入数据–
在这里,您将看到如何从现有的CSV文件中将数据插入数据库,并且可以使用以下cqlsh命令,如下所示。

COPY data.Student_personal_data (S_id, S_firstname, S_lastname) 
FROM 'personal_data.csv' 
WITH HEADER = TRUE;

步骤5:
验证结果–
一旦执行了上述命令,您将得到以下结果。

Using 7 child processes

Starting copy of data.Student_personal_data with columns [S_id, S_firstname, S_lastname].
Processed: 6 rows; Rate:      10 rows/s; Avg. rate:      14 rows/s
6 rows imported from 1 files in 0.422 seconds (0 skipped).

您可以使用以下命令查看输出,如下所示。

select * from data.Student_personal_data;

输出 :

S_id S_firstname S_lastname
e5ae4cf0-d358-4d55-b511-85902fda9cc5 Allies K
e6ae4cf0-d358-4d55-b511-85902fda9cc6  Lina M
e2ae4cf0-d358-4d55-b511-85902fda9cc2 Joshua D
e1ae4cf0-d358-4d55-b511-85902fda9cc1 Ashish christopher
e3ae4cf0-d358-4d55-b511-85902fda9cc3 Ken N
e4ae4cf0-d358-4d55-b511-85902fda9cc4 Christine christopher