小编xco*_*rat的帖子

为什么MongoDB会占用这么多空间?

我试图在mongoDB中存储一组双打和整数(大约15-20)的记录.大多数记录(99.99%)具有相同的结构.

当我将数据存储在一个非常结构化的数据存储格式的根目录中时,该文件大约为2.5GB,用于2250万条记录.但是,对于Mongo,数据库大小(来自命令show dbs)大约为21GB,而数据大小(来自db.collection.stats())大约为13GB.

这是一个巨大的开销(澄清:13GB对2.5GB,我甚至没有谈论21GB),我想这是因为它存储了两个keysvalues.所以问题是,Mongo为什么以及如何在缩小它时做得更好?

但主要问题是,这对性能有何影响?我有4个索引,它们的价格是3GB,因此如果我将数据量增加一倍并尝试在内存中保留大量工作集,那么在单个8GB机器上运行服务器会成为一个问题.

如果我应该使用SQL或其他数据库,任何猜测?或者如果有人尝试过,可能只是继续使用ROOT文件?

database large-data mongodb

12
推荐指数
1
解决办法
5951
查看次数

存储大量写入和高聚合的时间序列数据的最佳方式.(约10亿分)

我正在寻找一种存储带时间戳的数据的方法.

每个时间戳可能包含1到10个数据字段.

我可以(time, key, value)使用简单的数据解决方案或SQL 存储数据吗?如何与mongo等noSQL解决方案相比,我可以在哪里存储{time:.., key1:..., key2:...}

它将存储大约10个数据点,每秒最多大约10个字段.这些数据可能会被收集长达10年,很容易汇总10亿条记录.数据库应该能够帮助使用时间范围查询来绘制数据图形.

它应该能够处理大量写入频率,每秒约100(好吧,这不是那么高,但仍然......),同时能够处理返回大约一百万条记录的查询(甚至更多)

它本身的数据非常简单,它们只是电子测量.有些需要以高频率(~100毫秒)进行测量,有些则需要每隔1分钟左右进行一次测量.

任何使用此类评论的人都可以评论他们使用的方法的优缺点吗?

(显然这是一个非常具体的场景,所以这绝对不是要转向什么是最好的数据库类型的问题).

样本数据:

{ _id: Date(2013-05-08 18:48:40.078554),
  V_in: 2.44,
  I_in: .00988,
  I_max: 0.11,
},

{_id: Date(2013-05-08 18:48:40.078325),
  I_max: 0.100,
},

{ _id: Date(2001-08-09 23:48:43.083454),
  V_out: 2.44,
  I_in: .00988,
  I_max: 0.11,
},
Run Code Online (Sandbox Code Playgroud)

谢谢.

database database-design time-series

8
推荐指数
2
解决办法
7143
查看次数

使用Docutils即时解析rST到HTML

我想将.rst文件解析为.html文件,以显示为网页.我正在使用金字塔,我没有找到任何有关如何在python代码中使用docutils并使其写入缓冲区的快速帮助.

任何人都有任何链接到一个简单的教程或任何其他建议如何做到这一点?

python docutils pyramid

6
推荐指数
1
解决办法
1561
查看次数

Angular,双向绑定两个变量

我有两个与函数相关的变量,用户应该能够在输入字段中更改其中一个或另一个应该自动更改另一个的输入字段.

我怎么能这样做,现在我只是用$watch它们两个.

这是一些示例代码和小提琴.

JS,

angular.module("test", [])
.controller("MyController", function ($scope) {
    $scope.letter = 'A';
    $scope.number = 1;
    $scope.map = { 'A': 1, 'B': 2, 'C': 3, 'D': 4 };

    $scope.$watch('letter', function(new_val, old_val){
        if(new_val != old_val){
            $scope.number = $scope.map[new_val];
        }
    });
    $scope.$watch('number', function(new_val, old_val){
        ...
    });
});
Run Code Online (Sandbox Code Playgroud)

HTML,

<div ng-app="test">
    <div ng-controller="MyController">
        <input ng-model="letter" />
        <input type="number" ng-model="number" />
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

angularjs

5
推荐指数
1
解决办法
1万
查看次数

使用共享库和不匹配的编译器

使用与您的程序不同的编译器版本编译的共享库有什么机会会引入问题?

如果您的程序使用的语言标准与他们的不同怎么办?

例如,如果我在使用 gcc-6、c++14 编译代码时链接使用 gcc-4.8、c++11 编译的 boost 库,会出现问题吗?

c++ shared-libraries

5
推荐指数
1
解决办法
1894
查看次数

解码金字塔POST数据(MultiDict对象)

我收到一个POST请求,其数据格式为MultiDict对象.我在哪里可以找到有关此数据结构的文档?什么是将这些数据解码为字典对象(内部有列表和字典)的最佳方法(库)

我确实在urllib3中找到了这个,但不确定是不是.首选方式.

我已经编写了大部分代码来匹配这种数据样式,因此并不真正期待改变从HTML表单本身发送数据的方式.

谢谢

python json pyramid

4
推荐指数
1
解决办法
4242
查看次数

MongoDB Regex有多种选择

如何在具有多个选项的正则表达式中搜索mongo?

根据我可以做的mongo文档,

db.collection.find( { field: { $regex: 'acme.*corp', $options: 'i' } } )
Run Code Online (Sandbox Code Playgroud)

我如何使用多个选项,比如说im

喜欢$options: 'im'

或许$options: ['i', 'm']

regex mongodb

4
推荐指数
1
解决办法
3298
查看次数

使用 sed/awk/grep 格式化 git 日志输出

摘要/“要点”版本,

如果我有一组带有主题[SUB]和正文的消息,如下所示,仅当主题存在时[BODY],如何在主题后添加换行符(并将占位符替换为)[BODY]*

[SUB] some subject. [BODY] some body lines 
with newline chars and !@@# bunch of other *#@ chars
 without [(BODY)] or [(SUB)]... and more stuff
[SUB] Another subject. with no body [BODY] 
[SUB] another [BODY] some body.
Run Code Online (Sandbox Code Playgroud)

我希望其格式如下

* some subject.

some body lines 
with newline chars and !@@# bunch of other *#@ chars
 without [(BODY)] or [(SUB)]... and more stuff
* Another subject. with no body 
* another 

some body. …
Run Code Online (Sandbox Code Playgroud)

regex git bash awk sed

4
推荐指数
1
解决办法
3459
查看次数

MongoDB C++:mongocxx :: pool线程安全吗?

获取连接时是否必须手动锁定mongocxx :: pool?

即这样安全吗?(从Mongo网站复制的例子)

mongocxx::instance instance{};
mongocxx::pool pool {mongocxx::uri{}};

using mongocxx::pool::entry = std::unique_ptr<client, std::function<void (client*)>>

auto threadfunc = [](mongocxx::client &client, stdx::string_view dbname) {
    client[dbname]["col"].insert({});
}
// don't even bother sharing clients. Just give each thread its own,
std::thread([]() {
    // pool.acquire() returns a mongo::pool::entry type
    mongocxx::client *c= pool.acquire().get();
    threadfunc(*c, "db1");
    threadfunc(*c, "db2");
});

std::thread([]() {
    mongocxx::client *c = pool.acquire().get();;
    threadfunc(*c, "db2");
    threadfunc(*c, "db1");
});
Run Code Online (Sandbox Code Playgroud)

c++ multithreading mongodb mongo-cxx-driver

4
推荐指数
1
解决办法
1141
查看次数

金字塔上扩展名为.html的Jinja2模板?

如何在金字塔中使用扩展名为.html的jinja2模板?例如,我希望视图配置看起来像,

@view_config(context=MyModel, renderer='templates/index.html')
def home_view(request):
...
Run Code Online (Sandbox Code Playgroud)

可能吗?

python jinja2 pyramid

3
推荐指数
1
解决办法
1148
查看次数