NOSQL

#NOSQL#

已有1人关注此标签

内容分类

小文文文

请教一个范围查询的问题

表结构 CREATE TABLE IF NOT EXISTS api_stats ( app_name text, -- 目标应用 -- 被其它应用访问数据 count int, -- 被访问次数 err_count int, -- 被访问错误数 duration int, -- 被访问总耗时 max_duration int, -- 最大访问耗时 min_duration int, -- 最小访问耗时 satisfaction int, -- 满意 tolerate int, -- 可容忍 api text, -- 目标应用被访问的api input_date bigint, PRIMARY KEY (app_name, api, input_date) ) WITH gc_grace_seconds = 10800 AND default_time_to_live = 2592000; CREATE CUSTOM INDEX IF NOT EXISTS ON api_stats (input_date) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH OPTIONS = {'mode': 'SPARSE'}; 查询语句 select * from api_stats where app_name='tsp' and input_date> 1560215045 and input_date<1560474245; 问题:有时候可以查到,有时候查不到。

李博 bluemind

Nosql(MongoDB)如何书写数据库结构文档?

我用的MongoDB数据库,现在需要书写数据库的结构文档。关系型数据库我直接使用表格便可以完成。MongoDB如何写才能简单直白漂亮。 本问题及下方已被采纳的回答均来自云栖社区【Redis&MongoDB 社区大群】。https://yq.aliyun.com/articles/690084 点击链接欢迎加入社区大社群。

terry.zhouh

什么?有几十种数据库类型~!数据存储管理怎么选,阿里自研NoSQL数据库与你聊一聊

你的业务数据如何存储管理? 大家对此最直观的理解可能会想非结构化数据如视频、图片等放在NAS,对象存储,块存储中,结构化的数据如用户信息、订单信息放在数据库如MySQL中。但随互联网业务的发展,现有数据类型的丰富程度远超过大家的想象,比如: 关系数据(ERP、CRM、电商、金融) 用户行为数据(推荐、风控) 日志数据(运维) 时序数据(监控、大盘、报表) 轨迹数据(快递包裹) 溯源数据(药品监管码) 消息数据(即时通讯、Feeds流)... ... 尤其是后者——各类半结构化与非结构化的数据,由于业务场景的需求对于存储模型提出了更多更丰富的要求。 在1998年传统的关系型数据库发展30年后,出于对PB级别海量数据存储、低延时、低成本的业务需求,“NoSQL”依赖分布式系统架构,在功能上做出一定取舍后,带着互联网时代的使命诞生。 从最早的“Bigtable”,到后来的Dynamodb、HBase、Cassandra、Redis、MongoDB、Janus Graph等,发展出了不同类型,适用于不同场景的多种NoSQL数据库,每一种NoSQL数据库都有各自适合的场景,不管是适应于何种场景,这批相继前后诞生的“NoSQL 兄妹”都在快速成长。 在阿里云在成立之初就投入资源研发,经过9年的打磨和多轮迭代演变成了今天的阿里云表格存储TableStore,迎来全新升级。为大家的在线业务数据的存储提供了更优的体验与选择,发布支持:• 更加灵活功能强大的查询能力,支持多元索引与二级索引• 数据实时消费通道,无缝与业务应用,流式技术、大数据分析平台打通。 表格存储全新升级发布会 3月6日 15:00--16:00 :https://yq.aliyun.com/live/872 这里大家互相探讨下各种业务场景中数据存储技术选型与问题: 1.当前你数据存储主要是什么场景,在数据管理中面临了哪些挑战?2.是否在特定场景中,已经选择使用了NoSQL数据库?3.你期望当前使用的NoSQL产品具备哪些额外的能力? 比如:数据规模问题,服务高可用,需要高并发低延迟读写,需要海量数据多维查询和检索,需要交互式分析

李博 bluemind

什么叫做 “用 NOSQL 的方式使用 MYSQL”?

什么叫做 “用 NOSQL 的方式使用 MYSQL”?

lyrewu

阿里云完整的数据库服务体系,还有什么业务需求不能满足?

阿里云提供了一整套数据库产品及其解决方案,以RDS为主,针对不同业务场景也推出分布式关系型数据库DRDS、时序时空数据库TSDB及数据库服务产品,如云上数据自由流通的数据传输DTS、多引擎数据库统一管理平台数据管理DMS、多环境实时数据库备份DBS,全方面满足企业数据库架构及业务需求。 宝藏都在数据库里,这也是为什么云厂商都会提供丰富的数据库产品:分布式关系型数据库DRDS 专注于解决单机关系型数据库扩展性问题,具备轻量(无状态)、灵活、稳定、高效等特性,是阿里巴巴集团自主研发的分布式数据库产品,稳定运行10年,经历历届双十一核心交易业务和各类行业业务的考验,是您值得信赖的选择。 时序时空数据库TSDB ( Time Series and Spatial-Temporal Database , 简称 TSDB) 为物联网而生,是一种集时序数据高效读写,压缩存储,实时计算能力为一体的数据库服务,可广泛应用于物联网和互联网领域,实现对设备及业务服务的实时监控,实时预测告警。时序时空数据库TSDB推出首购首月1元体验! 数据传输服务DTS (Data Transmission Service) DTS支持关系型数据库、NoSQL、大数据(OLAP)等数据源间的数据传输。 它是一种集数据迁移、数据订阅及数据实时同步于一体的数据传输服务。数据传输致力于在公共云、混合云场景下,解决远距离、毫秒级异步数据传输难题。 它底层的数据流基础设施为阿里双11异地多活基础架构, 为数千下游应用提供实时数据流。 您可以使用数据传输轻松构建安全、可扩展、高可用的数据架构。 数据管理DMS 提供关系型数据库和NoSQL的统一管理。它源自阿里数据库服务平台iDB,为数万研发人员提供数据库研发支撑。您可使用数据管理DMS促进数据库研发自助化,提升研发效率,同时保证员工数据库访问安全及数据库高性能。 数据库备份DBS(Database Backup,简称DBS)是为数据库提供连续数据保护、低成本的备份服务。它可以为多种环境的数据提供强有力的保护,包括企业数据中心、其他云厂商、混合云及公共云。 11月11日前,通过此链接购买,DTS/DMS/DBS 1年付新购5折!DRDS/TSDB 1年付新购7折!亦可通过上述产品详情页的活动链接进行选购,记得选择时长 1年 哦。 问题来了:1、你用过哪几个上述数据库产品?2、主要用于哪种业务场景实现?3、双11折扣力度这么大,还在等什么~?

小江同志

[@倚贤][¥20]学习Java后端的疑惑

现在都说前后端分离,我是想往Java后端方向去发展,正在学ssm框架整合开发,但是开发实战经验倒是少。现在又有springboot和springcloud等技术,还有redis等NoSQL技术,现在我的疑惑是没有明确的后端学习路线?望指教,谢谢

妙正灰

比上一版本快 2 倍 的 MySQL 8.0 GA了!

一直被传言难产的 MySQL 8.0 终于还是发布了,可喜可贺啊!MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 不过值得注意的是,从 MySQL 5.7 升级到 MySQL 8.0 仅支持通过使用 in-place 方式进行升级,并且不支持从 MySQL 8.0 降级到 MySQL 5.7(或从某个 MySQL 8.0 版本降级到任意一个更早的 MySQL 8.0 版本)。唯一受支持的替代方案是在升级之前对数据进行备份。 更新内容: (原谅我的机翻) 性能 比MySQL 5.7快两倍。NoSQL 文档存储为开发人员提供了开发传统SQL关系应用程序和NoSQL无模式文档数据库应用程序的灵活性。这消除了对单独的NoSQL文档数据库的需要。 SQL 窗口函数,公用表表达式,NOWAIT和SKIP LOCKED,降序索引,分组,正则表达式,字符集,成本模型和直方图。JSON 扩展语法,新功能,改进排序和部分更新。使用JSON表函数,您可以使用JSON数据的SQL机制。GIS 地理支持。空间参考系统(SRS),以及SRS感知空间数据类型,空间索引和空间功能。可靠性 DDL语句已变得原子性和崩溃安全,元数据存储在单个事务数据字典中 可观察性 性能模式,信息模式,不可见索引,错误记录。可管理 性持久性配置变量,撤消表空间管理,重新启动命令和新建DDL。高可用性 InnoDB集群为您的数据库提供集成的本地HA解决方案。安全 OpenSSL改进,新的默认身份验证,SQL角色,分解超级特权,密码强度,授权。 挑几个重点: 性能 MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。MySQL 8.0 在以下方面带来了更好的性能:读/写工作负载、IO 密集型工作负载、以及高竞争("hot spot"热点竞争问题)工作负载。 NoSQL MySQL 从 5.7 版本开始提供 NoSQL 存储功能,目前在 8.0 版本中这部分功能也得到了更大的改进。该项功能消除了对独立的 NoSQL 文档数据库的需求,而 MySQL 文档存储也为 schema-less 模式的 JSON 文档提供了多文档事务支持和完整的 ACID 合规性。 窗口函数 从 MySQL 8.0 开始,新增了一个叫窗口函数的概念,它可以用来实现若干新的查询方式。窗口函数与 SUM()、COUNT() 这种集合函数类似,但它不会将多行查询结果合并为一行,而是将结果放回多行当中。即窗口函数不需要 GROUP BY。 让我们来聊一聊 你看好 MySQL 8.0 吗? 为什么? 那么你怎么看 MariaDB 呢? 你会怎样考虑部署升级至 MySQL 8.0? 如何看待 8.0 中的 NoSQL 功能?

duanggg

为什么Tablestore是存储而不是数据库?

阿里处于什么考虑,tablestore是存储而不是数据库,而其他家归类为NOSQL。那么NOSQL是库吗?

中间件雁溪

天呐,世界上为什么会有这么多种数据库?

在一开始接触计算机的时候,我特别不能理解,为什么世界上会有数据库这样的东西。因为有个东西叫excel,它和数据库一样是一个表格,我只要把数据库放上去,在里面搜索一个数据比数据库还快,所以我在想为什么要有数据库。 大学的时候开始学习关系型数据库。仅关系型数据库就有 DRDS、Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL等等等等。 随着web 2.0 的兴起,关系型数据库渐渐表现的力不从心,而NoSQL 顺势而生、迅猛发展。 蓝鹅,光 NoSQL 数据库就有四大类,包括HBase、Redis、Cassandra、 CouchDB 、MongoDb、Infinite Graph 、InfoGrid 、Riak 等等等等。 天呐,为什么这个世界上会有这么多种数据库嘞?  困惑还远远不止以上这些。 近期,开始接触时序数据库。时序数据这个领域是一个比较专的领域,但同时它的范围又很广,因为我们平时遇到的数据里头有相当大的一部分都是时序数据,但是它又相对来说比较专,因为它不像我们一般的数据库什么都可以做,所以时序数据这个领域还是蛮特别的。 说到时序数据库,那也不止一种啊,InfluxDB、Graphite、OpenTSDB、Riak TS、 Druid 等等等等。 一起来讨论讨论吧, 1. 世界上为什么会有数据库? 2. 为啥世界上又会有那么多种的数据库呢? 3. 作为如此优秀滴程序猿GG,在数据库的使用中,你遇到过哪些坑? 4. 在做一个数据库技术选型的时候,你会考虑哪些方面呢? ———----- 下面,造福社会、造福人类、造福程序猿的福利来啦~ ———----- 时序数据库的选型问题也是让人头疼呢?(对,就是那么生硬的转折)我们应该从哪些方面去考虑呢?写性能?数据分析的能力?存储压缩比?性价比? 在阿里巴巴内部,就是在时序数据处理和存储所面临的问题以及解决问题的过程中,以及不断应对挑战,就慢慢形成了高性能时序数据库 HiTSDB 。他不是一朝一夕的结果,而是经过阿里内部多年的孵化,诞生出来的。 今天,HiTSDB 在阿里云上首次正式发布,启动公测,HiTSDB 支持每秒 1000 万的时序数据点写入,还有比如高性能数据查询,时序数据库领域的”插值“、”降精度“,聚合运算啦,数据支持高效的压缩比啦,对他来说统统都是小case。 公测名额有限,需要的亲速来申~ 猛戳下面的链接,了解HiTSDB的详情后,再去申请公测哦! 高并发写入、低成本存储,HiTSDB邀您抢先公测,名额有限,速来!

火龙果大王

亿级别空间数据库查询优化与策略

目前公司正在整合空间数据,大概未来会增长到亿级别的空间GIS数据,常规来讲亿级别的数据小CASE,但是假如空间字段后,尤其是全部都是面,如何高速查询优化?例如常规的按照时间、空间及其他字段的属性,利用分区分表,利用索引是无法解决的、是做NOSQL?分布式?还是有什么其他的方案,求大神们提供,感激不尽。

scofier

一种高性能存储引擎设计思路

前言 通常,非关系型数据库写性能相对关系数据库会高一些,比如kv,nosql,mq等等。其中一个重要原因是这些引擎不需要处理数据的详细数据类型和数据之间的约束,甚之事务也无需处理。 在业务系统中,为了提高写性能我们有时会前置增加mq挡住高并发写,然后定时或者异步处理队列的数据。 这种方式业务需要处理异步,以及数据没有持久化到数据库的读取操作。而这个过程比较抽象,基本无业务相关性。 现实生活中的一个场景 寄快递大家都很熟悉, 找个盒子或者袋子装上需要寄送的东西,然后贴上快递单,就可以寄出去了。当然快递员可能会询问邮寄的内容,甚之会打开查看,但是这样时效性就慢了。 我们这样假定:1、快递员不拆包检查内容2、快递员提供快递袋子和快递单3、收货人检查快递内容,有问题退货4、寄货人保证快递的东西是合法的 新的存储引擎思路 根据上面的例子,存储引擎的思路也就很清晰了: 1、存储引擎预先不检查数据内容2、按照kv方式预先存储,然后返回存储成功3、业务触发对存储数据进行拆包,比如将nosql转换为关系数据4、也可以尝试存储引擎主动异步解包,异常信息作为数据的一部分5、存储引擎只校验key主键的唯一性6、事务处理暂不考虑

a123456678

有没有一种简单的查找数据唯一性的解决方案?

比如注册网站显示“该用户名已被使用”,“该邮箱已被使用”,都是通过Ajax在后台去查找该用户名或邮箱在mysql中是否存在,有没有一种简单的方法,不用mysql,能够迅速在大数据中查找一个数据如用户名或邮箱是否已经存在了?

a123456678

flask db.session.commit()抛出 InvalidRequestError?

在python中运行db.session.commit()抛出 `Traceback (most recent call last): File "<console>", line 1, in <module> File "C:\Users\wtf\myenv\lib\site-packages\sqlalchemy\orm\scoping.py", line 157, in do return getattr(self.registry(), name)(*args, **kwargs) File "C:\Users\wtf\myenv\lib\site-packages\sqlalchemy\orm\session.py", line 801, in commit self.transaction.commit() File "C:\Users\wtf\myenv\lib\site-packages\sqlalchemy\orm\session.py", line 390, in commit self._assert_active(prepared_ok=True) File "C:\Users\wtf\myenv\lib\site-packages\sqlalchemy\orm\session.py", line 214, in _assert_active % self._rollback_exception InvalidRequestError: This Session's transaction has been rolled back due to a previous exception during flush. To begin a new transaction with this Session, first issue Session.rollback(). Original exception was: (sqlite3.OperationalError) table users has no column named role_id [SQL: u'INSERT INTO users (username, role_id) VALUES (?, ?)'] [parameters: ('join', 1)]` xuanran.py from flask import Flask, render_template, session, redirect,url_for, flash from flask.ext.script import Manager from flask.ext.bootstrap import Bootstrap from flask.ext.moment import Moment from datetime import datetime from flask.ext.wtf import Form from wtforms import StringField, SubmitField from wtforms.validators import Required from flask.ext.sqlalchemy import SQLAlchemy import os basedir = os.path.abspath(os.path.dirname(__file__)) app = Flask(__name__) app.config["SQLALCHEMY_DATABASE_URI"] = \ "sqlite:///" + os.path.join(basedir, "data.sqlite") app.config["SQLALCHEMY_COMMIT_ON_TEARDOWN"] = True db = SQLAlchemy(app) app.config["SECRET_KEY"] = "hard to guess string" manager = Manager(app) bootstrap = Bootstrap(app) moment = Moment(app) now = datetime.now() class NameForm(Form): name = StringField("What is your name ?", validators = [Required()]) submit = SubmitField("Submit") class Role(db.Model): __tablename__ = "roles" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), unique=True) users = db.relationship('User', backref='role') def __repr__(self): return "<Role %r>" % self.name class User(db.Model): __tablename__ = "users" id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), unique=True, index=True) role_id = db.Column(db.Integer, db.ForeignKey('roles.id')) def __repr__(self): return "user %r" % self.username @app.route('/', methods=['GET', 'POST']) def index(): form = NameForm() if form.validate_on_submit(): old_name = session.get("name") if old_name is not None and old_name != form.name.data: flash ("Looks like you have changed your name !") session["name"] = form.name.data return redirect(url_for("index")) return render_template('index.html', form=form, name=session.get('name')) @app.route("/user/<name>") def user(name): return render_template("user.html", name = name ) @app.errorhandler(404) def page_not_found(e): return render_template("404.html"), 404 if __name__ == "__main__": app.run(debug = True) manager.run() 求教!

a123456678

Redis放在控制器还是模型层?

在实际项目中,Redis大部分情况下应该放在控制器还是模型? 目前只做过两种方案: 控制器中:大致的逻辑如下(不要纠结于方法名称): class UserController extends Controller { public function index() { $userRedis = new UserRedis(); if (!$userInfo = $userRedis->find(['id' => 1000])) { $user = new User(); $userInfo = $user->find(['id' => 1000]); $userRedis->save($userInfo); } return $userInfo; } } 在这种情况下,模型还是独立存在的,数据库模型依然直接读取数据库,Redis模型读取Redis,两者互不影响,控制器从中协调。 模型: class UserModel extends Model { public function find($conditions) { $userRedis = new UserRedis(); if (!$userInfo = $userRedis->find($conditions)) { $userInfo = $this->find($conditions); $userRedis->save($userInfo); } return $userInfo; } } 在这种情况下,控制器只需要调用一次接口方案,而无需关心内部实现,整个数据逻辑交给模型来处理。 在项目中实际用过Redis的朋友路过顺便分享一下自己的经验,大家集思广益一下。^_^

a123456678

mongodb如何指定目录文件夹恢复数据!

我在ubuntu服务器14.04上安装了最新的的mongodb那么,我备份是这个命令mongodump -o path可以指定我备份的位置,但是如何在恢复数据的时候指定自己要恢复的位置呢?

a123456678

Mysql/Oracle的btree节点的生成规则是怎么样的?

大概是这么个模式,他的索引节点生成规律究竟是怎么样的?

a123456678

mongo使用$in查询结果的排序问题。

最近的项目使用mongo作为数据库,遇到了一个问题。 db.col_content.find({'nodeID':{$in:[d,c,b,a]}})使用这样的查询的时候,查询的结果是按照自然排序的,即: {a.....},{b.....},{c.....},{d.....},不是在传值的时候的{d,c,b,a};我的猜测是,$in的操作是按照自然排序遍历数据,依次跟$in里面的数据进行比较,所以才会最终的数据按照自然排序,但是现在的业务需求需要按照传值的顺序,难道只能代码层实现排序了吗?我用的是PHP,不知道有没有比较简单的方法来进行排序。请指教。 刚才看到另外一个类似的问题,如果有在nodeID上加索引的话,就会根据$in的传值进行查询。我去试一试。 加了索引之后确实按照传入顺序进行排序了,但是楼下已经有人说了,这个是mongo的特性,不能作为依赖,现在只能通过代码层来实现了。

a123456678

文件存进数据库

例如word TXT excal 图片等,这些程序中经常会用到的文件,怎么把它们存到数据库中;

a123456678

mongoDB等非关系型数据库和 mysql 等关系型数据库 的应用场景有何异同?

mongoDB等非关系型数据库和 mysql 等关系型数据库 的应用场景有何异同?我在何时使用 nosql 或 mysql ? 它们的性能和优势都是什么?请大神详细说明.有的时候用在自己的项目不清楚用那种数据库更合适.比如,博客系统是不是就用 nosql 会更好?

a123456678

如何正确的使用mongodb

在日常开发中,我一般用mysql数据储存数据,memcache储存缓存,但是我不知道如mongodb这一类的nosql数据库到底相比mysql这种数据库有什么优势,在什么场景下我改选择mongodb这种数据库?希望各位能用浅显的语言帮忙解释下。