首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在线Excel存储方案

「100亿」行数据,如果我们用MySQL分表的话,每个表控制「1000万」行记录,需要一千个表。如果我们业务量增长10倍就需要一万个表,这么庞大分表数量显然不太可取。...方案设计 经过上面的分析我们对数据需求: 需求 是否必须 低延迟 必须 支持CP模型 必须 支持非结构化数据存储 必须 亿级数据存储方案 必须 有成熟扩容方案 必须 冷热数据 非必须 各类数据库对比...传统关系型数据库(RDBMS)访问延迟和CP模型支持上都很好,但是不支持非结构化数据,所以如果选择关系型数据库对我们进行Schema设计会有很大挑战,也会给业务开发带来很大工作量。...✅ ✅ ✅ ✅ 冷热数据 ✅ ✅ MySQL典型传统关系型数据库,MongoDB典型文档型数据库,TiDB典型NewSQL数据库,S3典型对象存储数据库。...如果大家对在线协作或者类似的场景中有问题欢迎留言交流,好更好建议、更优雅方案也请不吝赐教。

1.7K20

mongoDB简介及关键特性

mongoDB一个介于关系数据库和非关系数据库之间开源产品,最接近于关系型数据NoSQL数据库。它在轻量级JSON交换基础之上进行了扩展,即称为BSON方式来描述其无结构化数据类型。...一、什么mongoDB 开源NoSQL数据库 用于存储非结构化数据 SQL中绝大多数操作对应方式来实现 采用BSON描述数据类型 二、哪些逻辑概念...MongoDB 文档可以设置为使用不同字段,并且相同字段可以使用不同同数据类型 文档中值不仅可以是双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入文档...MongoDB文档不能有重复键。 文档字符串。除了少数例外情况,键可以使用任意UTF-8字符。...一个集合可以包含多个文档 三、哪些关键特性 面向集合 易存储对象类型数据,包括文档内嵌对象及数组,支持二进制及大型对象

1.7K10
您找到你想要的搜索结果了吗?
是的
没有找到

protobuf 语法 与 protocol-buffers 使用

什么protobuf Google Protocol Buffer( 简称 Protobuf) Google 公司内部混合语言数据标准,与 XML 和 JSON 数据格式类似,但采用二进制数据格式...Protocol Buffers 一种轻便高效结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。...schema.Data 名称和.proto文件内写message对象名称要一致 调用encode方法,传入数据格式类型和.proto文件保持一致,编码之后会得到一个buffer 3.解码 schema.Data.decode(buf) 调用decode方法,传入buffer解码出对应数据对象...repeated: 该字段可以格式良好消息中重复任意多次(包括零)。其中重复顺序会被保留。

78230

XML及相关协议

面向服务中信息交换和数据类型 1.1 电子信息交换 定义 执行领域(业务)相关功能,各式各样、采用电子方式编码信息,软件单元之间移动过程。...【注】为了方便起见,XML 文档也被用来指应用之间字节流、数据库中字段、XML 信息集中对象集合。...单根元素:所有 XML 文档都只能有一个根元素 元素标签规则:以开始标签和结束标签来包装元素 元素嵌套规则:元素标签中间可以嵌套标签 元素规则 XML 命名:首字母必须字母或_,后街任意长度字母、数字...“no”) 2.4 合法 XML 合法 XML 文档持有一个额外词汇表,并遵循该词汇表所定义结构化规则用 DTD 或 XML Schema 进行定义,XML 解析器可以选择是否使用词汇表进行合法性检查...(含嵌套子元素和所隶属属性) 名称空间前缀可以嵌套子元素中进行重新定义 默认名称空间:大多数元素隶属于相同名称空间,可以使用默认名称空间语法 <elementName xmlns='URI

1.1K20

数据库系统:第三章 关系数据库标准语言SQL

3.1 SQL概述 SQL结构化查询语言(Structured Query Language)缩写,关系数据标准语言,实际功能包括数据定义、数据查询、数据操纵和数据控制。...模式与表 每个基本表都属于某个模式,一个模式包含多个基本表,定义基本表三种方式定义其所属模式: 表名中明显给出模式名 创建模式同时创建表 设置所属模式,创建表不必给出模式名,类似缺省。...UNIQUE索引 对某个列建立UNIQUE索引后,插入新记录DBMS会自动检查新记录在该列上是否取了重复值。...SQL数据定义语句,实际上就是更新数据字典表中相应信息。...子查询限制: 不能使用ORDER BY子句,ORDER BY只能对最终查询结果排序。 层层嵌套方式反映了 SQL语言结构化;有些嵌套查询可以用连接运算替代。 2.

2.6K10

Spark Parquet详解

平台、语言无关,这使得它适用性很广,只要相关语言对应支持类库就可以用; Parquet优劣对比: 支持嵌套结构,这点对比同样列式存储OCR具备一定优势; 适用于OLAP场景,对比CSV等行式存储结构...1,因此二者未压缩下占用都是6; 我们大规模数据进行如下查询语句: SELECT 姓名,年龄 FROM info WHERE 年龄>=16; 这是一个很常见根据某个过滤条件查询某个表中某些列...,由于统计信息通常是针对某一列,因此列式存储直接放到对应列最后方或者最前方即可,行式存储需要单独存放; 针对统计信息耗时主要体现在数据插入删除维护更新上: 行式存储:插入删除每条数据都需要将年龄与最大最小值进行比较并判断是否需要更新...,如果插入数据,那么更新只需要分别于最大最小进行对比即可,如果删除数据,那么如果删除恰恰最大最小值,就还需要从现有数据中遍历查找最大最小值来,这就需要遍历所有数据; 列式存储:插入统计信息对应列才需要进行比较...,此处如果插入姓名列,那就没有比较必要,只有年龄列会进行此操作,同样对于年龄列进行删除操作后更新,只需要针对该列进行遍历即可,这在数据维度很大情况下可以缩小N(N为数据列数)倍查询范围; 数据架构

1.6K43

两种列式存储格式:Parquet和ORC

数据来源多种多样,例如埋点数据,很可能需要把程序中某些对象内容作为输出一部分,而每一个对象都可能嵌套,所以如果能够原生支持这种数据,查询时候就不需要额外解析便能获得想要结果。...例如在Twitter,他们一个典型日志对象(一条记录)87个字段,其中嵌套了7层,如下图。...数据模型 Parquet支持嵌套数据模型,类似于Protocol Buffers,每一个数据模型schema包含多个字段,每一个字段三个属性:重复次数、数据类型和字段名,重复次数可以是以下三种:required...,统计信息中都包含成员数和是否null值,并且对于不同类型数据设置一些特定统计信息。...在场景三基础上,将部分维度表struct内字段再转换成struct或者map对象,只存在struct中嵌套map情况,最深嵌套为三层。

5.2K30

数据序列化那些事

因为在内存中数据,当前进程知道数据格式和内容,但是数据传输二进制(或文本格式),所以需要有一个内存数据格式转换为二进制(或文本格式)过程。数据序列化,可以进行数据压缩、数据格式多语言兼容等。...文本格式序列化 直接将数据转变为文本格式,也就是字符串形式文本保存,如果一个数据存在多个字段可使用固定分隔符(比如",")分隔,该方案存储简单但是针对复杂对象比如嵌套数据,存储起来较为麻烦,并且无法表示本来就是二进制格式数据...此外,统一schema引入,可减少属性名称重复存储带来开销,同时,也有利于数据共享。...带有schema描述序列化常用Thrift、Protocol Buffers和Avro,它们一般被称为Language Of Data,使得跨语言序列化成为可能,并且它们提供了代码生成工具,方便为开发者生成各个语言代码...Language Of Data具有特性如下: 提供IDL(Interface Description language)用以描述数据schema,用来定义结构化或者结构化数据; 跨语言支持,至少支持

93530

不懂数据库?没问题!轻松入门 PostgreSQL for Beginners: A Step-by-Step Guide

1、技术厂商,很难挑战已有的数据库市场格局 2、渠道厂商,需要抓住窗口期,快速占领市场,避免重复造轮子。...当然架构能力,优化能力,管理能力,FIX BUG能力 最好能贡献核心代码,PG为你背书 三、PostgreSQL与MySQL比较 PostgreSQL相对于MySQL优势 1、SQL标准实现上要比...PostgreSQL 模式(SCHEMA)可以看着一个表集合。...\l:列出所有数据库。 \c [database_name]:连接其他数据库。 \d:列出当前数据所有表格。 \d [table_name]:列出某一张表格结构。 \du:列出所有用户。...图片 最后 本期结束咱们下次再见~ 关注我不迷路,如果本篇文章对你有所帮助,或者什么疑问,欢迎评论区留言,我一般看到都会回复

74232

教程|Python Web页面抓取:循序渐进

确定对象,建立Lists Python允许程序员不指定确切类型情况下设计对象。只需键入对象标题并指定一个值即可。 确立1.png Python中列表(Lists)有序可变,并且可重复。...提取6.png 循环将遍历整个页面源,找到上面列出所有类,然后将嵌套数据追加到列表中: 提取7.png 注意,循环后两个语句缩进。循环需要用缩进来表示嵌套。...应该检查实际上是否分配给正确对象数据,并正确地移动到数组。 检查在前面步骤中采集数据是否正确最简单方法之一“打印”。...如有必要还可添加另一个“If”条件来控制重复条目: 最后,需要更改数据形成方式: 更多3.png 到目前为止,我们代码最新迭代应如下所示: 更多4.png 幸运的话,运行此代码不会输出错误...添加“scrollto()”或使用特定键控制滚动条。创建爬虫模式,几乎不可能列出所有可能选项。 ✔️创建监控流程。某些网站上数据可能对时间(甚至用户)敏感。

9.2K50

【从0构建领域知识图谱】本体定义

汽车领域本体示例 Schema 构建方法 对于通用领域知识图谱,通常只需要宽泛定义 schema 或者直接使用 openkg 等开发知识图谱结构,甚至采用“无 schema”模式,直接将数据结构化为...“自底向上” 领域本体建模或者schema 构建,可以认为“自顶向下”和“自底向上”两种方法。...“自顶向下”方法适用于对领域知识体系已有深刻洞察和全面了解情况。而“自底向上”则是反向认知路径。已有大量数据表、文本,先基于业务,定义具体概念及其属性、关系。...列出领域相关重要术语; 收集是否已存在领域本体 分析数据 使用文本聚类、词频分析、聚类、统计分析等,统计出领域高频特征词、术语。...领域 schema 构建初期,一个基于业务实际不断优化迭代过程,直到 schema 完全结构确定下来不再修改(可以继承),则可以基于此将领域知识结构化了。

2.9K12

深入浅出 FlatBuffers 之 Schema

FlatBuffer 一个二进制 buffer,它使用 offset 组织嵌套对象(struct,table,vectors,等),可以使数据像任何基于指针数据结构一样,就地访问数据。...JSON 一种独立于语言存在数据格式,但是它解析数据并将之转换成如 Java 对象,会消耗我们时间和内存资源。...字段可以标量类型(所有大小整数/浮点数),也可以是字符串,任何类型数组,引用另一个对象或者一组可能对象(Union)。...table 甚至可能比等价 struct 花费更少内存,因为字段等于默认值不需要存储 buffer 中。 2....可以考虑用 buffer 中一个字符串或者 table 来共享一些公共数据,这样做会提高效率,因此将重复数据拆成共享数据结构 + 私有数据结构,这样做是非常值得。 五.

3.6K20

Mongoose学习参考文档

Schema——纯洁数据库原型 1.1 什么Schema 我理解Schema仅仅只是一断代码,他书写完成后程序依然无法使用,更无法通往数据库端 他仅仅只是数据库模型程序片段中一种表现,或者数据属性模型...});//只有id:ObjectId   该类型值由系统自己生成,从某种意义上几乎不会重复,生成过程比较复杂,兴趣朋友可以查看源码。...,还可以扩展插件、实例方法、静态方法、复合索引、文档生命周期钩子 Schema可以定义插件,并且插件具有良好可拔插性,请有兴趣读者继续往后阅读或者查阅官方资料。...如果使用Model创建对象,传入时一定会将隐藏属性也存入数据库,虽然3.x追加了默认严格属性,但也不必要增加操作报错 3.4 删除   和新增一样,删除也有2种方式,但Entity和Model都使用...,不是什么数据都能往数据库里丢或者显示到客户端数据验证需要记住以下规则: 验证始终定义SchemaType中 验证一个内部中间件 验证一个Document被保存默认启用,除非你关闭验证

24.2K90

mongodb存储数据类型(redis存储数据类型)

一些特定服务器端命令也只能从这个数据库运行,比如列出所有的数据或者关闭服务器。...这个字符用来表示键结尾。 .和$特别的意义,只有特定环境下才能使用。 以下划线”_”开头保留(不是严格要求)。 MongoDB文档不能有重复键。...这是为了使组织结构更清晰,这里blog集合(这个集合甚至不需要存在)跟它子集合没有任何关系。 5.元数据 数据信息存储集合中。...下面说明下几种重要数据类型 1.日期 与JavaScript使用Date对象一样,使用 new Date()创建日期对象或者使用ISODate()创建日期对象。...注意Date()函数与Js中一样,返回日期格式字符串,日期对象和字符串无法匹配,所以执行删除、更新和查询操作对导致很多问题。

3.7K11

七夕,帮他修个 Bug!

幸运又不幸,我一名程序员,他也是一名程序员。 周末,我开发网站,他开发游戏,两个人一起写代码,一起写 Bug 头秃,竟也有了一丝别样浪漫,好不自在!...结对编程 今天,他遇到了一个后台 Bug,游戏死活启动不了,我来帮忙排查一下,顺便给大家分享点编程小知识~ Bug 起因 开始游戏,首先要加载一些配置,比如玩家用户名、关卡难度、玩家初始道具等...打印出异常信息,很明显, JSON 解析错误了: 仔细一看,哎,这小糊涂,配置文件竟然输错了,行尾少了个必要引号,当然会解析失败了!...用编辑器或者校验网站检查一下? 我:那也只能检查基本语法吧,来来来,给你个更好康神器 —— JSON Schema!...": 5 } 优点 了解什么 JSON Schema 后,总结下它优点: 对数据格式进行描述,提高可读性,帮助人类理解 让机器更理解数据,从而提供数据校验和提示输入等功能 提供了统一数据规范语法

42340

深入浅出事件流处理NEsper(二)

事件表达以下共性: • 所有的事件表示支持嵌套,索引和映射属性(亦称属性表达),在下面详细解释前。嵌套级别没有限制。 • 所有的事件表示提供事件类型元数据。这包括嵌套属性类型元数据。...多个事件陈述好处: • 对于已经支持陈述事件应用程序,没有必要作事件到CLR对象转换处理。 • 事件陈述交互,当事件陈述发生改变,需要减少或消除变更声明。...事件属性简单索引,映射和嵌套事件属性。下表列出了不同类型属性和它们语法事件表达中。该语法允许语句来查询深CLR 对象图,XML结构和MAP事件。 如下图: ? 合并也有可能。...封装复合事件数据包含属性片段信息,或有一个属性值能代表片断或者事件本身。 片段和类型数据,可以让您应用程序导航复合事件,而不需要使用CLR反射API和减少耦合底层事件表示。...一对多关系: 对map内模型重复属性,你可以使用Map属性数组。你可以使用原始类型数组或CLR 对象数组或一个先前定义Map事件类型数组.

1.5K100

MySQL如何评估索引合理性?

它会估计索引中不重复记录,如果这个相对值很小,可能就要评估索引是否有意义。 那什么Cardinality值?...并不是在所有的查询条件中出现列都需要添加索引。 对于什么时候添加B+树索引,一般经验访问表中很少一部分数据使用B+树索引才有意义。...如: select * from student where sex=’F’ 按照性别查找可取范围一般“M”和“F”。...因此上述sql语句得到结果可能该表50%数据,这个时候添加B+索引没有必要。但如果某个字段取值范围很广,几乎没有重复,我们称之为高选择性,添加B+树索引很合适。...我们需要知道,在生产环境中,索引更新操作可能是非常频繁。如果每次索引发生更新操作,就对其进行Cardinality值统计,那么将会给数据库带来很大负担。

51360

MySQL如何评估索引合理性?

它会估计索引中不重复记录,如果这个相对值很小,可能就要评估索引是否有意义。 那什么Cardinality值?...并不是在所有的查询条件中出现列都需要添加索引。 对于什么时候添加B+树索引,一般经验访问表中很少一部分数据使用B+树索引才有意义。...如: select * from student where sex=’F’ 按照性别查找可取范围一般“M”和“F”。...因此上述sql语句得到结果可能该表50%数据,这个时候添加B+索引没有必要。但如果某个字段取值范围很广,几乎没有重复,我们称之为高选择性,添加B+树索引很合适。...我们需要知道,在生产环境中,索引更新操作可能是非常频繁。如果每次索引发生更新操作,就对其进行Cardinality值统计,那么将会给数据库带来很大负担。

44920

详细设计说明书编写规范「建议收藏」

用一个非结构化程序设计语言去实现一个结构化构造。 某种可以改善而不是损害程序可读性情况下。...一个工程中,如果一会儿使用(此处加入说明问题),将导致不必要混淆。   用户定义类型   一项许多用户定义类型大工程中,常常有必要给每种类型一个它自己三个字符前缀。...数据库访问技术:(此处加入说明)   5 .2.6 其他约定   (1)当日期、时间型数据要求严格,(此处加入说明)    (2)记录集应用约束   (此处加入约束)   利用记录集   ...用一个非结构化程序设计语言去实现一个结构化构造。 某种可以改善而不是损害程序可读性情况下。...一个工程中,如果一会儿使用(此处加入说明问题),将导致不必要混淆。   用户定义类型   一项许多用户定义类型大工程中,常常有必要给每种类型一个它自己三个字符前缀。

1.6K20

建模与表单动态化设计

从元数据特征来看,它天生一种键值对非关系型数据,因此使用NoSQL数据一个不错选择。我们可以把具有嵌套结构数据存储一个数据中,同时,元数据属性又不会用于查询。...因此,一种扁平描述性强数据格式非常有必要,我们称该数据格式为Schema,即在特定场景下产品描述协议。...Meta Market 存在意义,让用户操作一个范围。例如,当用户进行支付建模时候,他一定只能从支付字段中去选择,而没有必要把跟支付无关字段拉出来让他选择。...接入数据源 最后,在建模体系之外,我们还需要有一种方式,可以接入到系统已有的数据源,或者我们自己创建另外一个系统来为表单系统提供数据源。数据源指当用户使用表单,可以读取关联对象引用。...比如我们一个字段叫“地区”,当用户填写表单,需要去选择国家-省-市地区,但并非我们需要列出全国所有地区,我们可能只需要列出本公司业务往来地区即可。

2.5K11
领券