当前位置: 首页 > 面试题库 >

我的表在AppEngine的BigTable上运行需要进行哪些更改?

佟云
2023-03-14
问题内容

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

user_id
fname
lname

和他们的

ticket_id
user_id
flight_no

及相关 航班

flight_no
airline
departure_time
arrival_time

要移动此Google AppEngine,我需要更改什么?

我了解AppEngine 不允许加入

这是否意味着我的桌子应该成为所有领域的一大障碍?

预订

user_id
fname
lname
ticket_id
flight_no
airline
departure_time
arrival_time

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


问题答案:

您需要进行哪些更改,主要取决于您需要运行哪些查询,而不取决于所拥有的数据。最有可能的是,您只需添加几件事。

列出查询,然后查看“查询限制”。找到有问题的问题后,请考虑到BigTable的约束来重写它们。

例如,如果您经常需要查找某个航班列表的机票数量,那么您将不仅能够执行以下操作:

SELECT
    flight_no, COUNT(*)
FROM
    flights
JOIN
    tickets ON tickets.flight_no = flights.flight_no
GROUP BY
    flight_no

因此,您需要flights在创建/删除工单时为其添加一个工单计数器,并对其进行增/减。

好的方面是,BigTable迫使您进行非常可扩展的数据库设计。不利的一面是,当您真的 不需要 可扩展的设计时,会浪费大量时间。



 类似资料:
  • 问题内容: 我正在研究一个简单的代码,该代码从C / C ++应用程序运行Python函数。为了做到这一点,我设置了PYTHONPATH并运行初始化,如下所示: 然后,导入模块并运行函数。效果很好。 我现在正在尝试为我的同事构建一个安装程序以运行我的代码。出于明显的原因,我想减少需要在此安装程序中包含的文件数量。 仔细研究这个主题会告诉我,我应该能够包含文件“ Python27.lib”和“ Py

  • 我们已经在现有的HDP上安装了nifi(HDF服务)。安装是成功的,我可以运行nifi没有任何错误。但我在PutHDFS中遇到了一个问题 我也附上了截图。

  • 我正在使用Cucumber插件在Eclipse中运行特性文件。我正在尝试使用标记来选择要运行的方案。 在我的特性文件中,我使用如下所示的不同标记标记了两个场景:

  • 问题内容: 我有本机查询要运行: 出于某种原因,Hibernate选择在执行选择之前进行更新,这确实干扰了我的数据 任何帮助将不胜感激,谢谢 问题答案: 您所描述的正是Hibernate的含义。 执行查询时对持久性上下文(1LC)的任何修改都将在执行查询之前自动清除,以确保数据库返回的结果与内存中修改所缓存的结果匹配。 如果查询将返回您要查看其更新的实体,则您可能应该重新评估您的操作,确保查询在更

  • 问题内容: 我正在寻找一个清晰,简洁和准确的答案。 理想情况下,作为实际答案,尽管欢迎提供指向良好解释的链接。 问题答案: 装箱的值是对原始类型*进行最小包装的数据结构。装箱的值通常存储为指向堆上对象的指针。 因此,盒装值使用更多的内存,并且至少要进行两次内存查找才能访问:一次获取指针,另一次跟随该指针到达原语。显然,这不是您想要在内部循环中执行的操作。另一方面,带框值通常会与系统中的其他类型一起