标签: large-data

在 Firebase 中对大量数据进行分页和过滤的最佳方法是什么?

我有一个包含 10,000 个文档的大型 Firestore 集合。

我想通过一次分页和过滤 25 个结果来在表格中显示这些文档。

我的想法是,为了限制“读取”(从而降低成本),一次仅请求 25 个文档(使用“限制”方法),并在页面更改时加载接下来的 25 个文档。

但有一个问题。为了显示页数,我必须知道文档的总数,并且我将被迫查询所有文档才能找到该数字。

我可以选择无限滚动,但即使在这种情况下,我也永远不会知道我的过滤器找到的结果总数。

另一种选择是在开始时请求所有文档,然后使用客户端进行分页和过滤。

那么,在这种情况下通过优化性能和成本来显示数据的最佳方式是什么?

谢谢!

pagination large-data firebase google-cloud-platform google-cloud-firestore

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

在MySQL中存储和访问庞大数据矩阵的最有效方法

我将在mysqlDB中存储大量矩阵数据,这是存储和访问数据的最有效方法吗?

获取数据时效率最重要,表格不会定期更新.

矩阵约为100.000倍1000(未来可能更大)


id1
value
value_id1
id1
value
value_id2
id2
value
value_id1
id2
value
value_id2
.
.
.
id 100.000
value
value_id1000

vs
     value_id1, value_id2, value_id3 ... id 1000
id1  value      value      value
id2  value      value      value
id3  value      value      value
.
.
.
id 100.000

什么是最有效的数据,短调用(mysql查询)或将数据存储为矩阵?数据定期使用,因此获取数据必须高效.

mysql database matrix large-data

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

用于核外计算/数据挖掘的Python工具

我对python mining数据集感兴趣,这些数据集太大而无法放在RAM中但只能放在一个HD中.

据我所知,我可以将数据导出为hdf5文件pytables.还numexpr允许一些基本的核外计算.

接下来会发生什么?尽可能进行小批量处理,并且在不能使用迷你批处理时依靠线性代数结果来分解计算?

还是有一些我错过的更高级别的工具?

感谢您的见解,

python database numpy data-mining large-data

14
推荐指数
1
解决办法
3574
查看次数

计算R中bigmatrix的零空间

我找不到任何函数或包来计算R 中的bigmatrix(from library(bigmemory))的零空间或(QR分解).例如:

library(bigmemory)

a <- big.matrix(1000000, 1000, type='double', init=0)
Run Code Online (Sandbox Code Playgroud)

我尝试了以下但是显示了错误.如何找到bigmemory对象的空白空间?

a.qr <- Matrix::qr(a)
# Error in as.vector(data) : 
#   no method for coercing this S4 class to a vector
q.null <- MASS::Null(a)
# Error in as.vector(data) : 
#   no method for coercing this S4 class to a vector
Run Code Online (Sandbox Code Playgroud)

r matrix large-data r-bigmemory

14
推荐指数
1
解决办法
993
查看次数

你如何加密Go中的大文件/字节流?

我有一些大型文件,我想在通过线路发送或保存到磁盘之前进行AES加密.虽然似乎可以加密流,但似乎有警告要这样做,而是人们建议将文件分成块并使用GCM或crypto/nacl/secretbox.

由于真实性要求,处理数据流更加困难.我们不能加密 - 然后MAC:根据它的性质,我们通常不知道流的大小.我们无法在流完成后发送MAC,因为通常由关闭的流指示.我们无法动态解密流,因为我们必须查看整个密文才能检查MAC.尝试保护流会增加问题的复杂性,没有好的答案.解决方案是将流分解为离散的块,并将它们视为消息.

文件被分段为4KiB块.每次修改时,每个块都会获得一个新的随机128位IV.128位身份验证标记(GHASH)可保护每个块免受修改.

如果解密了大量数据,则在验证身份验证标记之前,并不总是可以缓冲所有解密数据.将数据拆分成小块可以解决延迟身份验证检查的问题,但会引入一个新问题.块可以重新排序......因为每个块都是单独加密的.因此,必须以某种方式将块的顺序编码到块本身中,以便能够检测重新排列任意数量的块.

任何具有实际密码学经验的人都可以指出我正确的方向吗?

更新

我在问这个问题之后意识到,简单地说不能将整个字节流放入内存(加密10GB文件)之间存在差异,字节流也是一个未知的长度,可能会长时间超过流的启动需求要解码(24小时直播视频流).

我最感兴趣的是大blob,在开始需要解码之前可以到达流的末尾.换句话说,加密不需要将整个明文/密文同时加载到存储器中.

encryption aes go large-data

14
推荐指数
2
解决办法
2757
查看次数

检查10亿个手机号码是否有重复

这是一个面试问题:

有10亿个手机号码有11个数字,它们随机存储在一个文件中,例如12345678910,第一个数字必须是1.通过这些数字查看是否有一个有重复的数字,只看看是否存在重复,如果找到重复,则返回True,或返回False. 只允许10 MB内存.

这是我的解决方案:

将所有这些数字哈希分成1000个文件hash(num)%1000,然后重复项应该归入同一个文件.

散列后,我得到了1000个小文件,每个文件都包含1 million数字at most,对吧?我不确定这一点,我只是这样做1 billion / 1000 = 1 million.

然后,对于每个文件,构建一个哈希表来存储每个数字,并flag表示其出现次数.

我想,它需要5 B代表数字,4 B低位8 digits1 B高位3 digits; 并且实际上1 bit就足够了flag,因为我只需要找出重复是否存在,只需要多少次.但是,我如何将1 bit标志应用于每个数字?我跌跌撞撞,所以我选择bool成为旗帜,1 B被带走.最后,哈希表中的每个数字都将采用5B<for number> + 1B<for flag> + 4B<for the next-pointer> = 10B,然后每个文件将采用10M哈希表.

那是我愚蠢的解决方案,请给我一个更好的解决方案.

谢谢.

跟进:

如果有no duplicates这10亿个电话号码,给定一个电话号码,如何查找给定的is or is …

algorithm large-data

13
推荐指数
3
解决办法
6682
查看次数

如何对大型数据库进行抽样并在R中实现K-means和K-nn?

我是R的新用户,试图摆脱SAS.我在这里问这个问题,因为我对R的所有软件包和源代码感到有点沮丧,我似乎无法让这个工作主要是由于数据大小.

我有以下内容:

在本地MySQL数据库中名为SOURCE的表,具有200个预测器功能和一个类变量.该表有300万条记录,大小为3GB.每个类的实例数不相等.

我想要:

  1. 随机对SOURCE数据库进行采样,以创建一个较小的数据集,每个类具有相同数量的实例.
  2. 将样本分为训练和测试集.
  3. 预制k-means聚类在训练集上以确定每个类的k个质心.
  4. 使用质心对测试数据进行k-NN分类.

r machine-learning large-data knn k-means

13
推荐指数
1
解决办法
1528
查看次数

如何存储极大数量?

例如,我有一个因子程序,需要保存可能超过50位数的巨大整数.C++中的绝对最大原始数据类型unsigned long long int的最大值18446744073709551615只有20位数.以下是C++限制的链接:http://www.cplusplus.com/reference/climits/

如何在某种变量中存储大于该数字的数字?

c++ int large-data data-structures

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

R中的大固定效应二项式回归

我需要在一个相对较大的数据框架上运行逻辑回归,其中包含480个条目和3个固定效果变量.固定效应var A有3233级,var B有2326级,var C有811级.总而言之,我有6370个固定效果.数据是横截面的.如果我不能使用正常glm函数运行此回归,因为回归矩阵对于我的记忆来说似乎太大了(我得到消息" Error: cannot allocate vector of size 22.9 Gb").我正在寻找在我的Macbook Air(OS X 10.9.5 8GB RAM)上运行此回归的替代方法.我也可以访问具有16GB RAM的服务器.

我试过用几种不同的方法解决这个问题,但到目前为止还没有取得令人满意的结果:

LFE/felm:使用的felm回归函数lfe减去运行回归之前固定的效果.这完美地工作,并允许我在几分钟内将上述回归作为正常线性模型运行.但是,lfe不支持逻辑回归和glms.所以felm非常适合了解不同模型的模型拟合,但不适用于最终的逻辑回归模型.

biglm/bigglm:我想过bigglm用来将我的功能分解成更易于管理的块.然而,若干来源(例如link1,link2,link3)提到为了使其起作用,因子级别需要在块之间保持一致,即每个块必须包含每个因子变量的每个因子中的至少一个.因子A和B包含仅出现一次的级别,因此我无法将这些集合拆分为具有一致级别的不同块.如果我删除固定效应A的10个因子和B的8个因子(微小的变化),我将只剩下4个级别的因子,并且将我的数据分成4个块将使其更易于管理.然而,我仍然需要弄清楚如何对我的df进行排序,以确保我的480.000条目被分类为4个块,其中3个因子中的每个因子的每个因子级别出现至少一次.

GlmmGS/glmgs:glmmgs具有相同名称的包中的函数执行固定效果减法,如lfe使用"Gauss-Seidel"算法的逻辑回归包.不幸的是,该包已不再开发.对R来说比较新,没有深入的统计经验,我无法理解输出,也不知道如何以一种能给我正常"效果大小","模型拟合","模型拟合"的方式对其进行转换.显着性区间"glm回归摘要提供的指标.

我给包的作者发了一条消息.他们回应如下:

该包不提供与glm对象相同格式的输出.但是,在给定当前输出的情况下,您可以轻松计算大部分拟合统计量(估计的标准误差,拟合度)(在CRAN版本中,我相信当前输出是系数估计的向量,以及相关的向量标准误差;协方差分量相同,但如果你没有随机效应拟合模型,你不必担心它们).只要注意用于计算标准误差的协方差矩阵是与Gauss-Seidel算法相关的精度矩阵的对角线块的倒数,因此它们倾向于低估联合似然的标准误差.我不再维护包裹,我没有时间详细说明; 包装背后的开创性理论可以在手册中引用论文中找到 ,其他一切都需要用笔和纸来制定:).

如果任何人都可以解释如何"轻松计算大部分拟合统计数据",使得没有任何统计学教育的人能够理解它(可能是不可能的)或者提供R代码,以示例如何实现这一点,我将是非常感谢!

Revolution Analytics:我在一台模拟Mac上的Windows 7的虚拟机上安装了革命分析企业.该程序具有一个被调用的函数RxLogit,该函数针对大型逻辑回归进行了优化.使用RxLogit我得到的功能the error (Failed to allocate 326554568 bytes. Error in rxCall("RxLogit", params) : bad allocation),所以该功能似乎也遇到了内存问题.但是,该软件使我能够在分布式计算集群上运行回归.所以我可以通过在具有大量内存的集群上购买计算时间来"解决问题".但是,我想知道革命分析程序是否提供了我不知道的任何公式或方法,这将允许我做某种类似的lfe固定效果减法操作或类似的bigglm …

r large-data mixed-models logistic-regression microsoft-r

13
推荐指数
1
解决办法
2793
查看次数

laravel游标和laravel chunk方法有什么区别?

我想知道laravel chunk和laravel cursor方法之间有什么区别.哪种方法更适合使用?两者的用例是什么?我知道你应该使用游标来节省内存,但它在后端实际上是如何工作的?

通过示例的详细解释将是有用的,因为我已经搜索了stackoverflow和其他站点,但我没有找到太多信息.

以下是laravel文档中的代码片段.

分块结果

Flight::chunk(200, function ($flights) {
    foreach ($flights as $flight) {
        //
    }
});
Run Code Online (Sandbox Code Playgroud)

使用游标

foreach (Flight::where('foo', 'bar')->cursor() as $flight) {
    //
}
Run Code Online (Sandbox Code Playgroud)

php database cursor large-data laravel

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