dataComposer

基于 PHP 的数据聚合器
授权协议 MIT
开发语言 PHP
所属分类 程序开发、 数据库连接池
软件类型 开源软件
地区 国产
投 递 者 应志用
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

datacomposer :数据聚合器。可以把 mysql,mongo,http api,xml, excel 等不同来源的数据按照数据列对应关系(类似于主键外键)聚合成树状结构的数据集合的实用小工具。

它是php第三方类库,通过composer工具安装或升级

目前支持的php框架:laveral, thinkphp。

小例子:如下有两张表,想在获取订单数据时,同时获取对应的商户数据。


  1. 添加一个配置文件:order.php

  2. 文件内容如下:

return [
	"property" => [
		"tableName" => "order",
	],
	"dataSource" => [
		"customer" => [
			"property" => [
				"tableName" => "customer",
				"relationKey" => ["customer_id" => "id"]
			]
		]
	]
]

获取数据

$dc=new Engine("order");
$data=$dc->GetData();

数据如下

[
	[
		"id" => 1,
		"customer_id" => 333,
		"customer"=>[
			"id"=>333,
			"name"=>"小米",
			"address"=>"北京"
		],
		"address" => "北京海淀西办街12号",
		"name" => "张三",
		"mobile" => "13455555555",
		"number" => 3
	],
	[
		"id" => 2,
		"customer_id" => 354,
		"customer"=>[
			"id"=>354,
			"name"=>"华为",
			"address"=>"深圳"
		],
		"address" => "上海天津街45号301",
		"name" => "李四",
		"mobile" => "17634343434",
		"number" => 1
	]
];

注意

datacomposer(数据聚合器)只能通过父级数据源影响子级数据源数据,不能反过来。

用上面例子说明,order数据源添加where条件后, customer数据会跟随变化。

但是 customer数据源添加where条件后,只会影响自己的数据,不会影响 order数据。

支持的数据源

  • 几乎所有关系型数据库:mysql,sqlserver,oracle,sqlite 等

  • mongo

  • redis

  • excel

  • 文件型数据源:json,xml,phpArray

  • http api

  • 其他数据源(通过自定义读取器支持)

 相关资料
  • 我正在使用带有ElasticSearchJavaAPI的日期直方图聚合,它非常适合简单的聚合,例如每小时/天/月/年的命中视频数(想象一系列文档,其中日期直方图聚合是在“indexed_date”字段中进行的)。 但是,我可以通过一个查询,相对于另一个字段进行多字段日期聚合吗?就像Kibana对图表所做的那样。 我想实现的一个例子: 我有一系列文档,其中每一个都是一个“事件”,有它的时间戳。这些文

  • 使用不同的聚合函数查看数值非常有用。Tableau支持许多不同的聚合类型,例如: 总和 平均 计数 唯一值 中位数 最小值 最大值 方差 总体方差 标准偏差 总体标准差 属性 维度 在Tableau中,您可以创建聚合维度和度量。每当向视图添加度量时,默认情况下会对这些度量应用聚合。使用的聚合类型取决于视图的上下文。 如果您不熟悉数据库,请参阅Tableau手册以获取这些聚合类型的详细定义。默认情况

  • 本文向大家介绍基于Docker的PHP调用基于Docker的Mysql数据库,包括了基于Docker的PHP调用基于Docker的Mysql数据库的使用技巧和注意事项,需要的朋友参考一下 docker简介: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不

  • 我使用复合和术语聚合来获得基于给定字段的分组结果。我还使用基数聚合来获取聚合桶的总计数。 下面是我发送的请求查询,以获得相应的响应: 请求: 答复: 我使用Kibana检查查询,它对我来说很好。 但是,我不确定如何在我的NEST对象语法中使用这个基数聚合器。 这是我的代码: 我将非常感谢任何帮助。

  • 我在读一篇关于OOP中的关系、关联、组合、聚合等的文章。有些事情令人困惑 因此,在PHP中,我们调用以下代码组合 在阅读了几篇关于作文的文章后 以下是组成示例: 因此,根据我的理解,聚合意味着A类的对象可以存在于B类之外,而组合意味着A类生命周期的对象取决于B类。 我正确理解了吗?

  • 我有一个窗口化的每小时聚合的数据流。 Datastreamds=.....