COPY FROM CSV 上的 Cassandra CQLSH TEXT 字段限制(字段大于字段限制 (131072))

Posted

技术标签:

【中文标题】COPY FROM CSV 上的 Cassandra CQLSH TEXT 字段限制(字段大于字段限制 (131072))【英文标题】:Cassandra CQLSH TEXT field limit on COPY FROM CSV (field larger than field limit (131072)) 【发布时间】:2014-08-01 19:46:46 【问题描述】:

导入内部包含大字段(超过 124214 个字符)的记录时出现错误

“字段大于字段限制(131072)”

我在其他帖子中看到了如何在 Python 上解决这个问题,但我不知道在 CQLSH 上是否可行。

谢谢

【问题讨论】:

【参考方案1】:

看看这个答案:

_csv.Error: field larger than field limit (131072)

您需要将此解决方案添加到 cqlsh 文件的顶部。所以之后:

import csv
import getpass

csv.field_size_limit(sys.maxsize)

【讨论】:

您能详细说明一下吗?我应该在哪个 cqlsh 文件中添加这些行? @ashwinator cassandra/bin/cqlsh 不好意思前面没提,我用的是ubuntu。文件在哪里?【参考方案2】:

cassandra 提供了一个标准选项来更改field_size_limit,而不是侵入 cqlsh 文件。 Cassandra 安装在 tarball 发行版的 conf 目录中包含一个 cqlshrc.sample 文件。在此文件中,可以找到并更改 field_size_limit 选项。要让 cqlsh 从这个文件中读取它的选项,你需要将 conf 目录中的 cqlshrc.sample 文件复制到你的用户主文件夹的隐藏的 .cassandra 文件夹中,并将其重命名为 cqlshrc。

Cassandra 文档包含有关它的更多详细信息:http://docs.datastax.com/en/cql/3.1/cql/cql_reference/cqlsh.html?scroll=refCqlsh__cqlshUsingCqlshrc

【讨论】:

此处直接链接到 cqlshrc 文档:docs.datastax.com/en/cql/3.1/cql/cql_reference/cqlshrc.html【参考方案3】:

从以下位置下载并提取 cassandra 发行版 https://cassandra.apache.org/download/

解压后会在conf目录下找到cqlshrc.sample文件

将 cqlshrc.sample 复制到 ~/.cassandra 并重命名为 cqlshrc

打开cqlshrc文件,把; field_size_limit = 131072改成field_size_limit = 1000000000

不要忘记删除“;”在上述步骤中

打开一个新终端并运行您的查询

【讨论】:

以上是关于COPY FROM CSV 上的 Cassandra CQLSH TEXT 字段限制(字段大于字段限制 (131072))的主要内容,如果未能解决你的问题,请参考以下文章

COPY FROM .csv 文件到远程 PostgreSQL 数据库(在 Linux 服务器上运行)

写作:使用 COPY (SELECT * from <table>) To <filename> DELIMITER ',' CSV HEADER" 在 postgr

在 PostgreSQL 中使用 COPY FROM 命令在多个表中插入

将 CSV 加载到 Redshift 中,注入更多信息

错误:加载到表中 - COPY 命令中的数据无效

Cassandra 复制——来自 100 多列