cassandra 笔记

  1. 数据迁移
    第一次使用cassandra,笔记一下,业务迁移,有两列数据没有迁移到新平台,特此实验,研究一下

    查看db

DESCRIBE  KEYSPACE

查看表

DESCRIBE  TABLES

查看表信息

DESCRIBE tablename

创建测试表

CREATE TABLE test.cl_test (
    id int PRIMARY KEY,
    cnt blob,
    cl1  blob,
    cl2  blob
)
WITH bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND comment = ''
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
    AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 86400
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99PERCENTILE';

插入数据

insert into cl_test (id,cnt,cl1,cl2) values (145,0x192c18096261736963696e666f192805617070696404646869641504392805493030303120396336366431616539636462343438346232346337633437613339633331326500180570686f6e6519280b70686f6e655f6272616e640b70686f6e655f6d6f64656c15043928056170706c65086970686f6e6520360015061696f194e1f15800,0x192c18096261736963696e666f192805617070696404646869641504392805493030303120396336366431616539636462343438346232346337633437613339633331326500180570686f6e6519280b70686f6e655f6272616e640b70686f6e655f6d6f64656c15043928056170706c65086970686f6e6520360015061696f194e1f15800,0x192c18096261736963696e666f192805617070696404646869641504392805493030303120396336366431616539636462343438346232346337633437613339633331326500180570686f6e6519280b70686f6e655f6272616e640b70686f6e655f6d6f64656c15043928056170706c65086970686f6e6520360015061696f194e1f15800);

删除数据某行

DELETE from dlk_test  where id=145; 

删除数据某行某列

DELETE cl1  from dlk_test  where id=145; 

数据导出

COPY test.test_cl (id,cl1,cl2) TO '/data/dlk_export/test_cl.csv';
或者
bin/cqlsh hostname -e "COPY test.test_cl (id,cl1,cl2) TO '/data/export/test_cl.csv';"

数据导入

COPY test.test_cl (id,cl1,cl2) FROM '/data/dlk_export/test_cl.csv';

导入错误

Starting copy of test.test_cl with columns [id, ep_dlk, ip_dlk].
<stdin>:1:Failed to import 5000 rows: Error - field larger than field limit (131072),  given up after 1 attempts
<stdin>:1:Exceeded maximum number of insert errors 1000
<stdin>:1:Failed to process 5000 rows; failed rows written to import_test_test_cl.err
<stdin>:1:Exceeded maximum number of insert errors 1000
Processed: 0 rows; Rate:       0 rows/s; Avg. rate:       0 rows/s
0 rows imported from 0 files in 5.355 seconds (0 skipped).

处理
在 cqsh中增加

import csv
import getpass

csv.field_size_limit(sys.maxsize)

继续导入错误

<stdin>:1:Failed to import 20 rows: InvalidRequest - Error from server: code=2200 [Invalid query] message="Batch too large",  will retry later, attempt 3 of 5
<stdin>:1:Failed to import 20 rows: InvalidRequest - Error from server: code=2200 [Invalid query] message="Batch too large",  given up after 5 attempts
<stdin>:1:Failed to import 20 rows: InvalidRequest - Error from server: code=2200 [Invalid query] message="Batch too large",  will retry later, attempt 2 of 5
<stdin>:1:Failed to import 20 rows: InvalidRequest - Error from server: code=2200 [Invalid query] message="Batch too large",  will retry later, attempt 4 of 5
<stdin>:1:Failed to import 20 rows: InvalidRequest - Error from server: code=2200 [Invalid query] message="Batch too large",  will retry later, attempt 2 of 5```

处理:
etc/cassandra/cassandra.yaml文件中,参数batch_size_fail_threshold_in_kb的默认值只有50,一条DML语句就超过了这个阈值.
修改
batch_size_fail_threshold_in_kb: 500

修改导入语句


COPY test.test_cl (id,cl1,cl2) FROM '/data/dlk_export/test_cl.csv'; WITH MAXBATCHSIZE = 1 and MINBATCHSIZE = 1

ok

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cassandra中建表的方式有多种,可以使用CQL命令或Java代码来创建表。引用中给出了使用Java代码创建表的示例。通过调用Ddl.createTable方法,可以传递一个Java Bean对象作为第一个参数,该对象包含了表的结构信息,第二个参数指示是否覆盖原来的表。具体示例代码如下: ```java Ddl.createTable(new CassandraTable(), false); ``` 引用中提到了在使用Cassandra建立新表时遇到的错误。该错误可能是由DOWN节点引起的架构版本不匹配导致的。如果不是这个问题,可以检查system.local和system.peers中节点的架构版本。需要确保所有节点的架构版本一致。 引用中给出了一个建表语句的示例,使用CQL命令在tutorialspoint键空间下创建了一个名为emp的表,包含了emp_id、emp_name、emp_city、emp_sal和emp_phone等列。 综上所述,要在Cassandra中建表,可以使用Java代码调用Ddl.createTable方法,也可以使用CQL命令执行CREATE TABLE语句。123 #### 引用[.reference_title] - *1* [根据Javabean创建Cassandra数据表](https://blog.csdn.net/abckingaa/article/details/123523901)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* [cassandra建表异常处理 · Messay](https://blog.csdn.net/u011250186/article/details/112608110)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [CASSANDRA学习笔记 (五)理解Cassandra的表](https://blog.csdn.net/kexinmei/article/details/103510782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值