首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入数据。复制并插入Cassandra

问导入数据。复制并插入Cassandra
EN

Stack Overflow用户
提问于 2016-05-07 21:47:57
回答 2查看 430关注 0票数 0

我试图了解不同的关系数据库和NoSQL数据库是如何工作的,以便了解这个或那个数据库的性能行为。所以昨天我用PostgreSQL PostgreSQL表中的CSV文件数据创建了一个数据库。

同样的例子: Movielens (http://grouplens.org/datasets/movielens/)。我们有电影和收视率。电影有多种类型。我把它们分割成一张单独的桌子,因为这是一个1:多的关系。有很多:许多关系,以及电影的用户。我需要能够以多种方式查询这个表。

现在我想用Cassandra创建同样的数据库。我对要优化的表建模以回答特定的查询。

代码语言:javascript
复制
CREATE TABLE movies (
    movie_id int primary key,
    title text,
    avg_rating decimal,
    total_ratings int,
    genres set<text>
);

# shows all movies for specific genre
CREATE TABLE genre_to_movies (
    genre text,
    movie_id int,
    name text,
    primary key (genre, movie_id)
);

# show the number of movies of specific genre
CREATE TABLE movies_per_genre (
    genre text primary key,
    movies int
);

# shows all ratings for specific movie
CREATE TABLE ratings_by_movie (
    movie_id int,
    user_id int,
    rating decimal,
    ts int,
    primary key(movie_id, user_id)
);

# show all ratings of specific user
CREATE TABLE ratings_by_user (
    user_id int,
    movie_id int,
    rating decimal,
    ts int,
    primary key(user_id, movie_id)
);

我有两个csv文件:movies.csv:movie_id;movie_name;genre_name

代码语言:javascript
复制
1;Toy Story (1995);Animation|Children's|Comedy

ratings.csv:user_id;movie_id;评级,时间戳

代码语言:javascript
复制
1;1193;5;978300760

将数据导入我的表中的最佳方法是什么?例如,如何从movies.csv将数据导入到类型集?我怎样才能把“动画片”和“儿童喜剧”分开?如果我手动做的话:

代码语言:javascript
复制
INSERT INTO movies(movie_id,..., genre) VALUES ('Toy Story (1995)', ...,['Animation','Children's','Comedy'])

但是如何为所有电影导入这些数据呢?

请您使用此示例/数据库?显示复制和插入命令的最佳策略。

EN

回答 2

Stack Overflow用户

发布于 2016-05-07 23:35:42

要做到这一点,您需要编写一个小的导入程序。例如,如果您使用Pandas,read_csv将进行导入,那么对于每一部电影,您可以拆分类型以插入一组文本字段。

我编写了一个实用程序来学习Cassandra,称为"cassandra数据集管理器“,即CDM。清洁发展机制的第一个进口商是电影数据集。仔细阅读资料可能对你有帮助。我建议看看install.py和movielens.helpers:https://github.com/rustyrazorblade/movielens-small

票数 1
EN

Stack Overflow用户

发布于 2016-05-08 00:34:21

可以使用复制命令从csv文件导入数据。

代码语言:javascript
复制
 COPY movies(movie_id, title, genres) FROM 'movie.csv' WITH DELIMITER =';' AND HEADER = TRUE;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37094065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档