Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何利用memsql来生成合并多个表的报表_Mysql_Bigdata_Data Warehouse_Singlestore - Fatal编程技术网

Mysql 如何利用memsql来生成合并多个表的报表

Mysql 如何利用memsql来生成合并多个表的报表,mysql,bigdata,data-warehouse,singlestore,Mysql,Bigdata,Data Warehouse,Singlestore,我们使用memsql列存储数据库。 我们为后端架构中的每个“偶数类型”创建管道,并为其创建一个专用表(我们称之为“源表”)。因此,每个管道都会写入memsql上的一个表(也称为源表) 我们为客户提供了不同的业务报告,这些报告包含来自多个源表的数据(不需要我们可以连接的表,因为某些字段可以存在于一个表中,而某些字段则不存在) 因此,克服这一问题的唯一方法是创建庞大而复杂的查询,其中包含联合函数,这使得维护和理解变得非常困难 维护和保持这样的体系结构的最佳实践是什么?这样的体系结构将允许我们在多个源

我们使用memsql列存储数据库。 我们为后端架构中的每个“偶数类型”创建管道,并为其创建一个专用表(我们称之为“源表”)。因此,每个管道都会写入memsql上的一个表(也称为源表)

我们为客户提供了不同的业务报告,这些报告包含来自多个源表的数据(不需要我们可以连接的表,因为某些字段可以存在于一个表中,而某些字段则不存在)

因此,克服这一问题的唯一方法是创建庞大而复杂的查询,其中包含联合函数,这使得维护和理解变得非常困难

维护和保持这样的体系结构的最佳实践是什么?这样的体系结构将允许我们在多个源表上创建多个报告,并降低查询复杂性

我们认为的一种方法是对每个报表进行专用查看。但我们不确定我们是否会走那条路。我们需要创建外部ETA,将越来越多的数据添加到该视图(日常流程) 你对此有什么想法?这可能是一种方式吗

第二种方法是使用联合函数处理大量查询(在运行时) 我们不喜欢这种方式,因为它在运行时和查询时运行复杂度

我想说的是,这些报告不需要实时更新。我们可以从一个更新到另一个更新有缓冲区(小时)


思考?

我认为有两种可能的策略:优化阅读或优化写作。您有一个管道,可以将数据快速摄取到“源”表中。这绝对是为写操作而优化的。但现在你正在努力阅读。视图是一种不错的方法,但每次运行报表时都会产生连接成本

考虑让管道(或其他管道)将数据反规范化为报告所需的格式。这不是一个具有嵌入联接的视图,而是一个特定于所述读取的数据存储。(是的,重复数据,但存储成本很低,并且假设经常使用报表,此策略将转换计算移动到摄取时的单个计算,而不是在每次运行报表时重复。)


如果发现经常需要为不同的报告加入标准数据,或者报表更为灵活,请考虑更改“源”表模式以包含这些字段,并在流水线摄取期间填充它们。然后,您可以使用更简单的查询来实现速度,而无需重复表。像这样的非规范化数据肯定有重复元素——因此写操作更复杂——但读操作效率更高。

为什么要添加amazon红移标记?如果不相关,请删除。因为它基于相同的技术。。columnstore数据库因此建议使用管道为报表创建专用表。这意味着我们不再需要“源”表,因为我们将一直查询专用报告。此外,我们需要随时(根据报告要求)修改管道。这是一个可以考虑的选项。也许这会将计算移到最前面,在每次运行报告时消除它。也许你的企业需要决定这不是一个好的举动,你可以考虑其他选择。我发现这里有问题的是你将如何喂这些管道?我的意思是我们有卡法管道,可以听不同的主题。如果我们考虑你的方式,那就意味着我们必须把我们所有的“持续”事件仅仅发送给一个话题。这意味着我们的所有业务服务都需要将其“审核”消息发送到该主题,这样我们就可以将该主题提供给不同的表中的多个管道。这是否可以被视为常见的做法?这里的问题也可能是性能。因为我们将有多个管道来听一个主题。将丢弃与主题无关的消息。因此,一份报告涵盖了多个卡夫卡主题。听起来像是对数据进行非规范化的管道无法工作,因为它不能同时访问所有数据。