R:为什么我需要(Azure)SQL?

R:为什么我需要(Azure)SQL?,r,azure,shiny,azure-sql-database,R,Azure,Shiny,Azure Sql Database,在一个单一的平面CSV文件中,我从病毒暴露数据中获得了30GB的新冠病毒风险。我制作了一个带有过滤器的Rshiny应用程序,允许我选择这些数据的子集并绘制它们。最后,我希望有少数人在我的组织之外的安全环境中使用Rshiny应用程序,并提供密码保护。显然,我无法将30GB的数据读入内存,因此我尝试了: sqlite 下采样 但这些仍然非常缓慢。我被告知我需要Azure SQL,我的数据瓶颈问题将消失,但这大约是每年10000个。这是我最好的选择吗 请询问我是否需要提供更多信息 EDI:有关数据的

在一个单一的平面CSV文件中,我从病毒暴露数据中获得了30GB的新冠病毒风险。我制作了一个带有过滤器的Rshiny应用程序,允许我选择这些数据的子集并绘制它们。最后,我希望有少数人在我的组织之外的安全环境中使用Rshiny应用程序,并提供密码保护。显然,我无法将30GB的数据读入内存,因此我尝试了:

  • sqlite
  • 下采样
  • 但这些仍然非常缓慢。我被告知我需要
    Azure SQL
    ,我的数据瓶颈问题将消失,但这大约是每年10000个。这是我最好的选择吗

    请询问我是否需要提供更多信息

    EDI:有关数据的一些信息:

    每一排都是公共交通工具上的假装乘客。每一列都是关于他们旅程的一些属性:他们在哪里上车/下车,他们上下车的时间,他们与感染者的距离有多近,他们自己是否有感染力,以及他们通过呼吸或接触表面获得的剂量。然后是关于载客量、当时病毒在社区的流行情况以及其他关于火车本身的专栏。所以这些都是大量的重复,没有索引。我想这可能就是瓶颈所在

    查询示例如下:

  • 挑选戴口罩的乘客&
  • 在终点站上车的乘客&
  • 所有戴面具的乘客&
  • 列车50%满载的乘客&
  • 在通风不良的火车上的乘客

  • 绘制他们收到的剂量。

    Azure SQL将满足处理该数据量的数据库的需要,并将提供一个安全的环境

    至于定价,它不需要每年花费1万美元,除非您有非常具体的性能要求。我刚刚引用了一个S2数据库(50DTU,250GB存储),每月89美元。如果您想要超强的可扩展性,您可以选择无服务器,同样大小的数据库可以支持2个vCore按需扩展到16个vCore,每月113美元


    现在,这是否意味着您使用Azure的SQL产品?不,但这可能是一个可行的解决方案。

    有很多东西可以改善您的大小/速度问题,其中可能包括Azure SQL。但它是许多选项之一,包括几乎所有的DBMS。您是否需要云部署(即Azure)取决于您的部署平台和其他详细信息。顺便说一句:我在SQL Server上也看到了很多瓶颈,所以这不仅仅是“扔掉SQL,所有问题都会消失”,可能还需要一些架构(取决于数据),包括表索引(集群与非集群等)。一个有趣的替代方案是Azure Synapse Analytics无服务器数据库。这是一种现收现付模式,可能会更便宜。同样,Azure SQL serverless也可以作为一个选项。为什么不创建一个小得多的摘要/聚合文件呢?Ppl不需要在整个过程中都有行级的细节。经过一番思考:请添加您正在使用的查询、您尝试过的任何索引(在sqlite中)以及数据的结构。我已经在shiny上使用了较大的SQLite dbs,这在索引和查询优化方面有所不同。如果你能添加一些东西,请点击我:-)@r2evan如果你是对的,我应该给出col的名称。要获得大约8万条记录,我会查找:百分比==50&流行率==0.001&戴面具==是&新鲜流柱类将在这里扮演重要角色。例如,我推断
    是布尔值,或者可能是三元值,在这种情况下,它应该是
    逻辑值
    或者
    整数
    (枚举)。另外,您不应该将
    ==
    与浮点一起使用,我建议您做两件事之一:查找一个范围内的值(
    介于45和55之间的百分比)或将它们分为两部分,例如由
    findInterval(百分比,seq(0100,by=10))
    完成。整数相等比浮点更安全、更快,而且bin可以很好地索引。