问题标签 [bigtable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
8830 浏览

python - 您如何为 Bigtable/Datastore (GAE) 设计数据模型?

由于 Google App Engine 数据存储区基于Bigtable,而且我们知道这不是关系型数据库,您如何为使用此类数据库系统的应用程序设计数据库架构/数据模型?

0 投票
2 回答
1796 浏览

architecture - 选择数据库类型

你什么时候会使用 bigtabe/simpledb 数据库和关系数据库?

0 投票
5 回答
5650 浏览

database - 专业的数据库,如 BigTable、SimpleDB

Google BigTable 和 Amazon SimpleDB 等新的学校数据存储范例是专门为可扩展性而设计的。基本上,不允许连接和非规范化是实现此目的的方式。

然而,在这个主题中,共识似乎是大表上的连接不一定必须太昂贵,并且非规范化在某种程度上被“高估”了为什么这些上述系统不允许连接并强制将所有内容放在一起单表实现可扩展性?是需要存储在这些系统中的大量数据(数 TB)吗?
数据库的一般规则是否根本不适用于这些规模?是因为这些数据库类型是专门为存储许多相似的对象而定制的吗?
还是我错过了更大的图景?

0 投票
10 回答
5711 浏览

java - 需要一个分布式键值查找系统

我需要一种方法来对(可能)数百 GB 的数据进行键值查找。理想情况下,基于分布式哈希表的东西可以很好地与 Java 配合使用。它应该是容错的,并且是开源的。

存储应该是持久的,但理想情况下会将数据缓存在内存中以加快速度。

它应该能够支持来自多台机器的并发读取和写入(尽管读取将是常见的 100 倍)。基本上,目的是对 Web 服务的用户元数据进行快速初始查找。

任何人都可以推荐任何东西吗?

0 投票
9 回答
21351 浏览

sql-server - 您在 SQL Server 上优化大型表(+1M 行)的方法是什么?

我正在将巴西股市数据导入 SQL Server 数据库。现在我有一张表格,其中包含三种资产的价格信息:股票、期权和远期。我还在 2006 年的数据中,该表有超过 50 万条记录。我有更多 12 年的数据要导入,因此该表肯定会超过一百万条记录。

现在,我的第一种优化方法是将数据保持在最小大小,因此我将行大小减少到平均 60 字节,并包含以下列:

现在,第二种优化方法是创建一个聚集索引。实际上主索引是自动聚集的,我把它做成了一个包含 Stock 和 Date 字段的复合索引。这是独一无二的,我不能在同一天拥有同一股票的两个报价数据。

聚集索引确保来自同一股票的报价保持在一起,并且可能按日期排序。第二个信息是真的吗?

现在有 50 万条记录,从特定资产中选择700条报价大约需要 200毫秒。我相信随着桌子的增长,这个数字会越来越高。

现在对于第三种方法,我正在考虑将表格分成三个表格,每个表格用于特定市场(股票、期权和远期)。这可能会将表格大小减少 1/3。现在,这种方法会有所帮助还是无关紧要?现在,该表的大小为 50mb,因此它可以完全放入 RAM 中而没有太多麻烦。

另一种方法是使用 SQL Server 的分区功能。我对此了解不多,但我认为它通常在表很大并且您可以跨越多个磁盘以减少 I/O 延迟时使用,对吗?在这种情况下,分区会有所帮助吗?我相信我可以对不同表中的最新值(最近年份)和最旧值进行分区,寻找最新数据的概率更高,并且使用小分区可能会更快,对吧?

还有什么其他的好方法可以使这个过程尽可能快?该表的主要选择用途是从特定资产中查找特定范围的记录,例如资产 X 的最近 3 个月。还有其他用途,但这将是最常见的,可能执行超过 3k用户同时。

0 投票
8 回答
261732 浏览

database - 谷歌使用什么数据库?

是 Oracle 还是 MySQL 还是他们自己构建的东西?

0 投票
14 回答
14085 浏览

sql - SQL查询:大表之间的内连接优化

我在 MySQL 4.x DB 中有以下 3 个表:

  • 主机:(300.000 条记录)
    • id (UNSIGNED INT) 主键
    • 名称(VARCHAR 100)
  • 路径:(6.000.000 条记录)
    • id (UNSIGNED INT) 主键
    • 名称(VARCHAR 100)
  • 网址:(7.000.000 条记录)
    • host (UNSIGNED INT) PRIMARY KEY <--- 链接到 hosts.id
    • path (UNSIGNED INT) PRIMARY KEY <--- 链接到paths.id

如您所见,模式非常简单,但问题在于这些表中的数据量。

这是我正在运行的查询:

此查询运行良好,但需要 50 分钟才能运行。有谁知道我如何加快查询速度?

提前致谢。尼古拉斯

0 投票
2 回答
280 浏览

python - App Engine - 尝试设置模型属性值时出现问题

我对应用引擎很陌生,我第一次尝试在应用引擎数据库中设置一些文本。

这是我的代码:

这会引发某种异常 - 由于我的 django 1.02 设置,我无法分辨它是什么。

好的,我在下面的答案中给出了代码,在删除我的数据存储后它工作了,但我仍然不满意。

这是一个更新:

我已将我的代码修改为看起来对我有意义的东西。当我调用 getVenueIntroText 时,它不会抱怨 - 顺便说一句,我在数据库中没有任何项目。

当我调用 setVenueIntroText 时,出于某种原因它不喜欢我正在做的事情 - 如果有人知道原因,我真的很想知道 :)

这是我最近的尝试:

0 投票
7 回答
2424 浏览

c# - 提供高频数据的设计思路

我想构建一些东西来存储和提供时间序列数据,这些数据来自不同时间间隔的各种来源。这包括原始数据和计算数据。例如,假设我想记录每 30 秒的温度读数,以及每 5 分钟单独计算的温度预测。

我需要能够快速查询数据,并且我发现关系数据库一旦变得太大就无法正常工作。所以我正在考虑创建某种内存中的东西,但我确信它会在某个时候崩溃,所以我需要将数据保存到磁盘。所以我想知道,为什么不让整个事情都基于磁盘,对常用数据进行某种缓存呢?

但我对如何去做这件事有点不知所措。我正在想象数据源定期将更新数据集推送到服务器,使用某种字符串键/符号来识别数据是什么。服务器获取数据,然后呢?将其写入某种二进制文件?我可以每个符号写入一个文件吗?(假设超过 100k 个符号)

我认为我想要的是类似于 google 的 BigTable,但规模要小得多。基本上,一个分布式哈希表,将字符串键映射到相关数据的时间序列,具有非常快速的检索和按时间检索范围查询的能力。和多维数据的加分。

哦,这将(理想情况下)由 C#/windows 项目 - 它不需要那么高性能

0 投票
2 回答
702 浏览

sql - 我需要哪些更改才能让我的表在 AppEngine 的 BigTable 上运行?

假设我有一个由用户组成的预订数据库:

和他们的

和相关航班

我需要更改哪些内容才能移动此 Google AppEngine?

我了解 AppEngine不允许 joins

这是否意味着我的桌子应该成为一大堆混在一起的字段?

预订

换句话说,我的所有查询现在都针对同一个表运行?