Cassandra之中一共包含下面5种Key: Primary Key Partition Key Composite Key Compound Key Clustering Key 首先,Primary key 是用来获取某一行的数据, 可以是一列或者多列(复合列 composite) Primary = Partition Key  + [Clustering Key] (Clustering Key 可选) Clustering keys 包括下面两种情况: (1) composite k…
Cassandra 的数据存储结构 Cassandra 的数据模型是基于列族(Column Family)的四维或五维模型.它借鉴了 Amazon 的 Dynamo 和 Google's BigTable 的数据结构和功能特点,采用 Memtable 和 SSTable 的方式进行存储.在 Cassandra 写入数据之前,需要先记录日志 ( CommitLog ),然后数据开始写入到 Column Family 对应的 Memtable 中,Memtable 是一种按照 key 排序数据的内存…
    因为我一直想用Cassandra来存储我们的数字电表中的数据,按照之前的文章(getting-started-time-series-data-modeling)的介绍,Cassandra真的和适合用于存储time series类型的数据,那么我就想要弄清楚,对于下面这张表    CREATE TABLE temperature ( weatherstation_id text, event_time timestamp, temperature text, PRIMARY KEY (w…
Of course, like any technology MongoDB has its strengths and weaknesses. MongoDB is designed for OLTP workloads. It can do complex queries, but it’s not necessarily the best fit for reporting-style workloads. Or if you need complex transactions, it’s…
三.类可以理解成一种特殊的数据结构 我们知道数据类型可以进行强制类型转换,类既然可以理解成一种数据类型,那么它也应该可以进行类型转换.比如下面代码为一个按钮(Button1)的单击事件 procedure TForm1.Button1Click(Sender: TObject); var ACaption: String; begin ACaption:= TButton(Sender).Caption; //Sender从TObject转化为TButton ShowMessage(Format…
本周接手了一个Cassandra系统的维护工作,有一项是需要将应用方的数据导入我们维护的Cassandra集群,并且为应用方提供HTTP的方式访问服务.这是我第一次接触KV系统,原来只是走马观花似的看过KV啊,NoSQL啊.但是实际上没有实际的使用经验.经过两天的学习和接手,终于搞明白了在生产环境中的使用方式.在此简要的笔记一下.本文主要包括的内容有: Cassandra的简介, Cassandra的相关CLI Cassandra的Python API,并且给出一个批量导入数据的例子. 1. C…
没有join操作.有轻量级事务和批处理,但是没有外键等.反规范化.3.0支持物化视图,允许在一个表上创建数据的多个物化视图.使用cassandra要从查询入手,而不是先从数据模型开始.先对查询建模,然后根据查询来组织数据,然后再构建表结构.cassandra建表要考虑磁盘怎么存储数据,也就是要求要保证相关的列定义在同一个表中,不像RDBMS去关联查询.尽可能搜索最小的分区去满足一个给定的查询.搜索单个分区往往会得到最优的性能.排序需要提前设计,根据集群键排序.只能是和设计排序一样,或者完全相反.…
================================================================ 创建keyspace和table CREATE KEYSPACE exps WITH REPLICATION = { }; create table exps_user(user_id int primary key,user_name varchar,user_info text); create index idx_user_name on exps_user(u…
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 由于业务中接触的数据量很大,于是不得不转战开始寻求数据操作的效率.于是,data.table这个包就可以很好的满足对大数据量的数据操作的需求. data.table可是比dplyr以及Python中的pandas还好用的数据处理方式. 网络上充斥的是data.table很好,很棒,性能棒之类的,但是从我实际使用来看,就得泼个水,网上博客都是拿一…
https://www.cnblogs.com/bonelee/p/6306079.html Allow filtering: 如果你的查询条件里,有一个是根据索引查询,那其它非索引非主键字段,可以通过加一个ALLOW FILTERING来过滤实现: 虽然查询非索引非主键字段,但是只要加了ALLOW FILTERING条件,它会先根据索引查出来的值,再对结果进行过滤: (如果不加ALLOW FILTERING,而又有非索引列,这样是不允许的: 加上ALLOW FILTERING,相当于在结果后再…
Vnodes简短历史 Vnodes又叫Virtual Nodes.是Cassandra在1.2版本里引入的功能,已经在生产环境中使用了近8年了.从2.0版本开始,因为默认配置里num_tokens一般会设成256,所以如果你没有修改过默认参数,那很有可能你一直都在使用这个功能. 当初引入vnodes主要是为了改善增加节点时的灵活性.在pre-1.2时代(也就是没有vnodes功能的时候),每次集群扩容都必须要让节点数翻倍,比如3个节点扩容到6个节点,下次需要扩容的时候再增加到12个节点.这是因为…
hdfs数据到hive中: 假设hdfs中已存在好了数据,路径是hdfs:/localhost:9000/user/user_w/hive_g2park/user_center_enterprise_info/* 1.提前(在hive中)准备好表, user_center_enterprise_info2 ,用于接收hdfs数据. CREATE TABLE user_center_enterprise_info2 ( `id`string , `name` string ); 2.使用load…
wireshark是一个非常好用的抓包工具,本文根据平时抓包经验,对之前wireshark抓包的一些常见知识点进行了整理. 有不当之处,欢迎指正 1.SYN,FIN会消耗一个序号,单独的ACK不消耗序号 2.WIN表示可以接收数据的滑动窗口(接收缓冲区)是多少,如果A发到B的包的win为0,就是A告诉B说我现在滑动窗口为0了,饱了,你不要再发给我了,就说明A端环境有压力 3.ACK可以理解为应答.A发给B的ack是告诉B,我已收到你发的数据包,收到ack号这里了,你下次要发seq为ack号的给我…
前言 经常会有这样一种业务逻辑,就是需要根据Redis中Key的规则,模糊查询对应的数据,当数据量少时,利用常规的命令也能满足需求,但是数据量大时,就会导致堵塞,就算是采用不堵塞的函数,如果数据需要显示的话,显示结果的时间也比较慢,用户体验不好. Lua脚本 Redis 自2.6.0版本之后,就内置了Lua脚本,可以执行相关Lua脚本,提高操作效率:具体Lua脚本大家百度自行学习,不难: 应用: 这里记录的是在C#中的简单使用,其他语言也类似: 引用的包StackExchange.Redis, …
这里行转列的基本思想就是使用max,因为其他列下面都是NULL,所以可以Max最后就只能得到有值的这行 普通的查询: SELECT icd , case when (ROW_NUMBER() OVER(PARTITION BY INNER_CD ORDER BY SLIDE_SEQ )) = then SLIDE_QTY END as SLIDE_QTY1, case when (ROW_NUMBER() OVER(PARTITION BY INNER_CD ORDER BY SLIDE_SEQ…
前言 如果我们想要实现多个标签页之间的通信,可以使用localStorage.cookie等,但是能不能用vue或react呢? 结论 答案是NO,因为vue和react虽然可以在“多个”页面之间传递数据,但是这几页面是通过路由跳转的,所以其实还是一个页面,所以不可以实现多个标签页之间的通信…
需要函数: fopen($file, "r")打开文件 fgets($file, 1024 * 10)读取一行,注意设置字节数大小,默认的1024B可能太小了 strpos($log, '---') 找到某一标记首次出现的位置 trim()去除空格 substr($pre, 0, $index_q)截取某一标记之间的字符 explode()通过某标记转为数组 end($logs)将 array的内部指针移动到最后一个单元并返回其值 <?php header("Conte…
假如用户注册后,获得用户手机号和userid,realName默认为0,然后进入B页面进行实名认证,认证成功后realName变为1,再更新缓存里的用户信息. A页面用户注册后,存储用户信息: var obj = {}; obj.phone = res.data.data.phone; obj.userid = res.data.data.userId; obj.realName = res.data.data.isRealName; wx.setStorageSync('user', obj)…
这段时间我们在做一个英语翻译软件的小小小APP,涉及到了对Json数据的解析,所以特地来总结一下! 假设我们要对如下数据进行解析,其实在平时,返回的Json数据是很乱的,很难分清数据的关系,这是经过相关工具美化后的结果 {  "translation": [    "爱"  ],  "basic": {    "us-phonetic": "lʌv",    "phonetic": &q…
1 前言 由于项目中有一个需求,需要把当日当周的排行榜数据归档,以便后期查询和发放奖励.然而发现,mysql的变量只能存一个变量值,然后如果要储存一条记录,可以使用CONCAT_WS,如果要储存多条记录,则再其基础上使用GROUP_CONCAT方法,再配合order by 某字段即可. 2 代码 //默认值查询num>0,条件可以按需改动 select GROUP_CONCAT(CONCAT_WS("|",t1.uid,num,name) order by num desc) i…
示例 8.1 make_maps.go package main import "fmt" func main() { var mapLit map[string]int //var mapCreated map[string]float32 var mapAssigned map[string]int mapLit = map[string]int{"one": 1, "two": 2} mapCreated := make(map[strin…
//方式1:通过model 将数据绑定 @RequestMapping(value = "findByIdModel", method = RequestMethod.GET) public String findByIdModel(@RequestParam("empno") int id, Model model) { Emp emp = empService.findById(id);//从业务层传回的数据 model.addAttribute("e…
<c:if test="${not empty parammap}"> <c:forEach items="${parammap }" var="map"> <c:forEach items="${map.key}" var="key" varStatus="s"> <input type="hidden" name=&quo…
如下: public static String httpPost(String url, String json) { try { URL u = new URL(url); HttpURLConnection httpURLConnection = (HttpURLConnection) u.openConnection(); httpURLConnection.setConnectTimeout(TIMEOUT); httpURLConnection.setDoInput(true); h…
使用GROUP_CONCAT函数. SELECT GROUP_CONCAT(查询的字段 separator ',') FROM table…
如下: public static String httpPost(String url, String json) { try { URL u = new URL(url); HttpURLConnection httpURLConnection = (HttpURLConnection) u.openConnection(); httpURLConnection.setConnectTimeout(TIMEOUT); httpURLConnection.setDoInput(true); h…
用到的是这个函数: group_concat() select group_buying_id, group_concat(app_user_ids) from org_user_group group by group_buying_id 输出的结果: select group_buying_id, group_concat(app_user_ids) from org_user_group where group_buying_id=10 这是查询一条…
       Cassandra属于NoSQL数据库,NoSQL和传统关系型数据库不同,NOSQL偏好数据冗余,因为NoSQL一般无法做表关联查询. (1) keySpace 基本上可以将Keyspace 理解成MySQL 之中的Database. 只不过Cassandra的"database" 包含了更多的内容: Replication Factor : 复制因数. 表示一份数据在一个DC 之中包含几份.常用奇数~ 比如我们项目组设置的replication_factor=3 Rep…
NoSQL一般是反范式的,比如提倡数据冗余,使得不至于写出非常复杂的SQL语句. Cassandra之中一共包含下面5中Key: Primary Key: 用来获取某一行的数据,可以是一列或多列               PRIMARY KEY(key_part_one, key_part_two)    key_part_one -  partition key   key_part_two - clustering key PRIMARY KEY((k_part_one,k_part_tw…
http://www.flyml.net/2016/09/08/cassandra-tutorial-java-api-example/ Cassandra对查询的支持很弱,只支持主键列及索引列的查询,而且主键列还有各种限制,不过查询弱归弱,但它还是支持索引和排序的. cassandra: 索引列 支持 like 只有主键支持 group by 不支持 or, 但是 支持 and select * from books where subject like 'Pro%' CREATE CUSTO…