宽格式数据:每个变量单独成一列为宽格式数据,变量的所有属性都在同一行。 长格式数据:长数据中变量的ID没有单独列成一列,而是整合在同一列。 需求描述 下面左右两种长宽格式数据相互转换: ?...key ##这样汇总的就是value值了) ##宽格式数据转换成长格式数据melt(data1, id.vars=c("user_no"), ##要保留的字段 variable.name...library(tidyr)library(dplyr)spread( data = data, key = "message", ##key键,原来表中字段 value = "detail" #...#value值,原来表中字段)##宽格式数据转换成长格式数据gather( data = data1, key = "message", ##key键,新增字段 value = "detail"...总结 R语言reshap2和tidyr包都可以实现长宽格式数据相互转换,相比较而言,更喜欢tidyr包中的实现方式,与Hive中类似,中间过渡map格式类型数据,key键和value值明确,结合sql
设计时多查一查,下面只是列举了一部分,全部关键字查看官方文档内容。...(R)是保留关键字 说明:有些人可能还不明白关键字和保留关键字的区别,简单的说,关键字分两种:非保留和保留,保留关键字又有一个特殊类别叫未来保留。...6、尽量做到冷热数据分离,减小表的宽度 MySQL限制每个表最多存储4096列,并且每一行数据的大小不能超过65535字节 减少磁盘IO,保证热数据的内存缓存命中率(表越宽,把表装载进内存缓冲池时所占用的内存也就越大...九、索引设置规范 尽量避免使用外键约束 不建议使用外键约束(foreign key),但一定要在表与表之间的关联键上建立索引; 外键可用于保证数据的参照完整性,但建议在业务端实现; 外键会影响父表和子表的写操作从而降低性能...推荐在程序中获取一个随机值,然后从数据库中获取数据的方式 13、WHERE从句中禁止对列进行函数转换和计算 对列进行函数转换或计算时会导致无法使用索引。
1、快速求和对多行多列的单元格数据求和,可以直接选取单元格区域,按组合键【Alt、+、=】即可快速求和。...17、如何复制粘贴行宽复制表格区域内内容,点击空白处单元格粘贴,在粘贴后区域右下侧的粘贴选项中选择【保留源列宽】。...21、设置页眉页脚点击菜单栏中的【页面设置】-【打印页眉和页脚】在对话框中对页脚进行设置格式就可以了。22、一键新建表格文件快速新建 Excel 文件可以直接按组合键【Ctrl+N】新建表格。...35、在合并后保留所有单元格的内容选取单元格区域,并把列宽拉到可以容下所有单元格合并后的宽度,点击菜单栏中的【开始】选项卡,选择【两端对齐】把多个单元格的内容合并到一个单元格中,在分隔的空隔处按组合键【...50、隐藏工作表当需要将整个工作表隐藏时,鼠标右键点击表格内最下方的工作表,选择【隐藏】就可以了。51、为 Excel 文件添加密码文件 - 信息 - 保护工作簿 - 用密码进行加密。
Excel小技巧有很多很多,但平时学的都比较零散,学了这个忘了那个。 为了方便同学们学习和收藏,兰色把工作中最常用、最简捷的小技巧进行一次整理,共57个。希望对同学们有所帮助。...-冻结首行 6、把窗口拆分成上下两部分,都可以上下翻看 选取要拆分的位置 -视图 -拆分 7、调整excel工作表显示比例 按ctrl+滚轮 8、快速切换到另一个excel窗口 ctrl + tab键...文件 -选项 -高级 -最上面“按Enter键后移动所选内容” -设置方向 2、设置下拉菜单,显示A,B,C三个选项 数据 -数据有效性 -允许 -序列 -输入A,B,C 3、复制表格保存行高列宽不变...整行选取复制 -粘贴后点粘贴选项中的“保留列宽” 4、输入到F列时,自动转到下一行的首列 选取A:F列,输入后按回车即可自动跳转 5、设置三栏表头 插入 -形状 -直线 -拖入文本框中输入的字体并把边框设置为无...6、同时编辑多个工作表 按ctrl或shift键选取多个工作表,直接编辑当前工作表即可。
特别说明:不要将长宽格数据转换为宽格式数据理解为数据透视表,长转宽只是数据存储形式发生变化,并不对操作对象进行计算,而数据透视表一般对操作对象进行某种操作计算(计数、求和、平均等)。...参数columns是长格式数据中的key键对应的列名;参数values是长格式数据中的value对应的列。...这里不能使用透视表pivot_table()函数,因为pivot_table()函数对value进行计算(求和、平均等),但这里Message列都是字符型的,无法进行计算;若value为数值型数据,可以使用...参数names_from对应长格式数据key键对应的列;values_from对应长格式数据value值对应的列。...中使用dfply库中函数,R中使用tidyr包中函数,因为key键和value值比较明确。
列族还影响数据在 HBase 中的物理存储,必须预先定义列族并且不能随便对其进行修改。表中每一行都具有相同的列族,但列族中不一定都有相同列。...如果 HBase 表作为键值存储来看,主键可以只是行键,或者是行键,列族,列限定符,时间戳的组合,具体取决于我们要寻址的单元。如果我们对一行中的所有单元都感兴趣,则主键是行键。...保存了一些样例数据的表如下图所示: ? 按高表而不是宽表进行设计。把用户名放进列限定符可以节省为了得到用户名到用户表中查询的时间。...在这个方案里,我们放弃了这样做的能力 注意,在表中不同的行键可能其长度也不一样。由于每次对表的调用要传输的数据都是不一样的,因此这对性能也会由影响。解决此问题的方法是对行键进行散列。...如下图所示我们使用 MD5 对用户Id以及其所关注的用户Id进行散列并拼接 md5(follower)md5(followed)。这样我们就有固定长度的行键,每个用户ID为16个字节。
所有数据库对象名称禁止使用 MySQL 保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)。 数据库对象的命名要能做到见名识意,并且最后不要超过3 2 个字符。...谨慎使用 MySQL 分区表 分区表在物理上表现为多个文件,在逻辑上表现为一个表 谨慎选择分区键,跨分区查询效率可能更低 建议采用物理分表的方式管理大数据。...尽量做到冷热数据分离,减小表的宽度 MySQL 限制每个表最多存储 4096 列,并且每一行数据的大小不能超过 65535 字节 减少磁盘 IO,保证热数据的内存缓存命中率(表越宽,把表装载进内存缓冲池时所占用的内存也就越大...,所以无法选择合适的类型 对预留字段类型的修改,会对表进行锁定 8.禁止在数据库中存储图片,文件等大的二进制数据通常文件很大,会短时间内造成数据量快速增长,数据库进行数据库读取时,通常会进行大量的随机...方法 将字符串转换成数字类型存储,如: 将IP地址转换成整形数据。
灵活性差 宽表本质上是一种按需建模的手段,根据业务需求来构建宽表(虽然理论上可以把所有表的组合都形成宽表,但这只存在于理论上,如果要实际操作会发现需要的存储空间大到完全无法接受的程度),这就出现了一个矛盾...目前大部分多维分析前端都是基于SQL开发的,但SQL体系(不用宽表时)在描述复杂关联计算上又很困难,基于这样的原因,SPL设计了专门的类SQL查询语法DQL(Dimensional Query Language...SPL把等值关联分为外键关联和主键关联。外键关联是指用一个表的非主键字段,去关联另一个表的主键,前者称为事实表,后者称为维表,两个表是多对一的关系,比如订单表和客户表。...主键关联是指用一个表的主键关联另一个表的主键或部分主键,比如客户表和 VIP 客户表(一对一)、订单表和订单明细表(一对多)。...主键关联 有的事实表还有明细表,比如订单和订单明细,二者通过主键和部分主键进行关联,前者作为主表后者作为子表(还有通过全部主键关联的称为同维表,可以看做主子表的特例)。
转换之后,长数据结构保留了原始宽数据中的Name、Conpany字段,同时将剩余的年度指标进行堆栈,转换为一个代表年度的类别维度和对应年度的指标。(即转换后,所有年度字段被降维化了)。...+……~class #这一项是一个转换表达式,表达式左侧列 #出要保留的主字段(即不会被扩宽的字段,右侧则是要分割的分类变量,扩展之后的 #宽数据会增加若干列度量值...Python中我只讲两个函数: melt #数据宽转长 pivot_table #数据长转宽 Python中的Pandas包提供了与R语言中reshape2包内几乎同名的melt函数来对数据进行塑型...除此之外,我了解到还可以通过stack、wide_to_long函数来进行宽转长,但是个人觉得melt函数比较直观一些,也与R语言中的数据宽转长用法一致,推荐使用。...pandas中的数据透视表函数提供如同Excel原生透视表一样的使用体验,即行标签、列标签、度量值等操作,根据使用规则,行列主要操作维度指标,值主要操作度量指标。
();检查一个键是否在数组中 in_array();检查一个值是否在数组中,里面的参数是"值"和数组名 array_flip();键和值对调,参数是数组名 array_reverse...key rsort();降序排列,不保留key asort();保留key升序排列 arsort();保留key降序排列 ksort();根据值对key升序排列,排列后key...ccc");和其他语言交互的时候使用可以换行 htmlspecialchars();转实体,转“、 &”,对于恶意输入,原样输出 strip_tags();去掉html标签,也可以保留一部分...attachment;filename=a.txt); 3.header("content-length:30KB"); 4.readfile('a.txt'); 37.mysql数据库 数据表三部分组成...1.表结构 列信息 2.表字段(数据) 行信息 3.表记录 (索引) 把列中的行加到索引中(一般情况下一个表一定要把id这一列的所有数据都加到主键索引中) mysql基本命令 1.net stop
,col_2列设置成保留3位小数点,col_3列设置成百分数格式,实现代码如下: sf.apply_column_style(cols_to_style=["col_1"],...4.行宽列高设置 4.1设置列宽 设置列宽的时候,我们可以将整个表中所有列设置成一样的宽度,也可以不同列的列宽是不一样的。...设置列宽不是通过设置Styler来设置的,而是在sf表上直接调用set_column_width和set_column_width_dict方法即可。...我们把col_1列列宽设置成10,col_2列列宽设置成20,col_3列列宽设置成30,实现代码如下: sf.set_column_width_dict(col_width_dict = {"col_...1、2行冻结 best_fit 传入列名,会根据列宽自动调节字体大小
所有数据库对象名称禁止使用 MySQL 保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)。 数据库对象的命名要能做到见名识意,并且最后不要超过3 2 个字符。...谨慎使用 MySQL 分区表 分区表在物理上表现为多个文件,在逻辑上表现为一个表 谨慎选择分区键,跨分区查询效率可能更低 建议采用物理分表的方式管理大数据。...尽量做到冷热数据分离,减小表的宽度 MySQL 限制每个表最多存储 4096 列,并且每一行数据的大小不能超过 65535 字节 减少磁盘 IO,保证热数据的内存缓存命中率(表越宽,把表装载进内存缓冲池时所占用的内存也就越大...,所以无法选择合适的类型 对预留字段类型的修改,会对表进行锁定 8.禁止在数据库中存储图片,文件等大的二进制数据通常文件很大,会短时间内造成数据量快速增长,数据库进行数据库读取时,通常会进行大量的随机...将字符串转换成数字类型存储,如: 将IP地址转换成整形数据。
我们在ClickHouse集群中各个节点上创建好了本地表person_socre,每个节点上也有不同的数据,我们需要创建分布式表来映射当前表所有数据,方便查询数据结果,如下图所示:从实体表层面上来看,一张分片表由两部分组成...分布式表:通常以_all为后缀进行命名,分布式表只能使用Distribute表引擎,它与本地表形成一对多的映射关系,日后将通过分布式表代理操作多张本地表。...三、分片规则分片键sharding_key要求返回一个整形类型的取值,包括Int系列和UInt系列,分片键sharding_key可以使如下几种情况:可以是一个具体的整形列字段:Distributed(...cluster,database,table,userid)可以按照随机数划分:Distributed(cluster,database,table,rand())可以按照某个整形列进行散列值划分:Distributed...如果分布式表只包含一个分片,也就失去了分布式的意义,所以虽然分片键是选填参数,但是通常都会按照业务规则进行设置。
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的。...2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描, Sql 代码 : select id from t where num is null; 可以在...(index(索引名)) where num=@num ; 8.应尽量避免在 where 子句中对字段进行表达式操作, 这将导致引擎放弃使用索引而进行全表扫描。...如果删除了表的一大部分,或者如果已经对含有可变长度行的表(含有 VARCHAR、BLOB或TEXT列的表)进行更多更改,则应使用OPTIMIZE TABLE命令来进行表优化。...这个命令可以将表中的空间碎片进行合并,并且可以消除由于删除或者更新造成的空间浪费,但OPTIMIZE TABLE 命令只对MyISAM、 BDB 和InnoDB表起作用。
,注意查看优化器是否选错索引联表查询时注意查看key_len 使用索引长度,避免部分索引列未使用到注意附加信息extra中的 排序、临时表等查询时少用is null、is not null、or、!...(统计快) 全局数量统计时尽量使用count(主键)/count(1)/count(*)等,不要使用count(二级索引列),可能当初该列的索引确实是空间最小的,但后面还可能建立比它空间更小的二级索引(...,是先对平台的积分进行扣减,还是先对用户持有积分进行增加呢?...尽可能的缩短它持有资源的时间应该把平台扣减积分放在提交事务前,因为平台积分相当于共享资源,大家都可以领取扣减考虑调整事务隔离级别MySQL默认的事务隔离级别为RR(可重复读),在该隔离级别下能够防止脏读、不可重复读、大部分幻读但加的行锁和持有时间会比...,如:分布式事务,如何路由、联表、聚合等最后(不要白嫖,一键三连求求拉~)本篇文章被收入专栏 MySQL进阶之路,感兴趣的同学可以持续关注喔本篇文章笔记以及案例被收入 gitee-StudyJava、
场景更丰富 新增支持部分列更新,数据写入更灵活;新增倒排索引,日志检索分析、非主键列查询性能有了巨大提升。 产品易用性 支持一键开启数据实时同步、一键开启湖仓联动,一键备份恢复/跨集群迁移。...2、数据更新增强,支持部分列更新 在实时分析场景中,数据更新是非常普遍的需求。用户不仅希望能够实时查询最新数据,也希望能够对某些列进行灵活的实时更新。...聚合模型的 Replace_if_not_null 进行部分列更新,在 2.0 版本中增加了 Unique Key 主键模型的部分列更新,在多张上游源表同时写入一张宽表时,无需由 Flink 进行多流...Join 打宽,直接写入宽表即可,减少了计算资源的消耗并大幅降低了数据处理链路的复杂性。...但通过 FLink CDC 等工具进行数据写入,可能存在字段格式不兼容(如 TIMESTAMP 时区不对齐、VARCHAR 精度丢失等)、操作太繁琐(如需要手动批量建表)、集群不稳定(如数据写入过快导致集群
但Join操作符还会受到关联两侧是否是UniqueKeys唯一键的影响。...强调一点,这里讲到主键侧PK side不是指其主键,是带有主键的那一侧,就JoinKey关联键外键而言,它是重复的,如员工表的外键部门编号就是含有重复值的,所以使用主键侧的选择率和外键的非重复记录数进行估算...在统计信息模块在也不是对所有的列都会进行判断识别某列是否为唯一键,那样计算成本过于高昂。...对整颗操作符树进行自上而下遍历,直到找TableScan或null则停止并返回。...强调的是,由于计算成本的考虑,既是找到TableScan,也是对TableScan的所有列进行分析判断UniqueKeys唯一键,也是基于Project投影中选择的列进行分析,下面讲解getUniqueKeys
MySQL没有对存储有限制,取决于存储设置和文件系统) 谨慎使用mysql分区表(分区表在物理上表现为多个文件,在逻辑上表现为一个表) 谨慎选择分区键,跨分区查询效率可能更低 建议使用物理分表的方式管理大数据...列限制好处:减少磁盘io,保证热数据的内存缓存命中率,避免读入无用的冷数据) 禁止在表中建立预留字段(无法确认存储的数据类型,对预留字段类型进行修改,会对表进行锁定) 禁止在数据中存储图片,文件二进制数据...,不适用UUID,MD5,HASH,字符串列作为主键) 区分度最高的列放在联合索引的最左侧 尽量把字段长度小的列放在联合索引的最左侧 尽量避免使用外键(禁止使用物理外键,建议使用逻辑外键)...禁止where从句中对列进行函数转换和计算(例如:where date(createtime)=‘20160901’ 会无法使用createtime列上索引。...order by 最后的字段是组合,索引的一部分,并且放在索引组合顺序的最后,避免出现 file_sort 的情况,影响查询性能。
数据库设计规范 命名规范 基本设计规范 索引设计规范 字段设计规范 SQL开发规范 操作行为规范 命名规范 对象名称使用小写字母并用下划线分割 禁止使用MySQL保留关键字 见名识义,最好不超过32个字符...覆盖索引:包含了所有查询字段的索引 避免Innodb表进行索引的二次查找 可以把随机IO变为顺序IO加快查询效率 尽量避免使用外键 外键是用于保证数据的参照完整性,但建议在业务端实现。...MySQL外键会建立索引 不建议使用外键约束 表与表之间的关联键建立索引是必须的 外键会影响父表和子表的写操作而降低性能(检查约束导致的) 字段设计规范 优先选择符合存储需要的最小的数据类型 将字符串转化为数字类型存储...,如果子查询数据量大则严重影响效率 避免使用 JOIN关联太多的表 每 JOIN一个表会多占用一部分内存(joinbuffersize) 会产生临时表,影响查询效率 MySQL最多允许关联61个表,建议不超过...对大表数据结构的修改一定要谨慎,会造成严重的锁表操作。尤其是生产环境,是不能忍受的。
3.2 使用短索引 对串列进行索引,如果可能应该指定一个前缀长度。例如,如果有一个char(255)的列,如果在前10个或20个字符内,多数值是惟一的,那么就不要对整个列进行索引。...2.3 不重复查询相同的数据 3.查询优化器的局限性 3.1 子查询大部分情况下都很差,但并不代表所有情况都很差,所以可以通过EXPLAIN看它的执行计划来判定最终是否要使用子查询 第七章 MySQL的高级特性...一.分区表 1.分区表需要具备以下条件 1.1 有唯一索引,分区列必须是唯一索引的一部分,索引列也可以是null 1.2 没有唯一索引,可以指定任何列 1.3 主键和唯一索引都存在,主键包含在唯一索引中...,分区根据类型直接比较而得,不需要转换为整形 3.RANGE分区 可以根据对列的指定,如下所示,当主键ID值大于10小于20的就会存储在p1区,当ID值小于10时就会存储在p0区,并且在磁盘当中也会分成两个...4.视图的使用场景 权限控制的时候,不希望用户访问表中某些含敏感信息的列,比如工资 关键信息来源于多个复杂关联表,可以创建视图提取我们需要的信息,简化操作 三.外键 1.定义 表的外键是另一表的主键,
领取专属 10元无门槛券
手把手带您无忧上云