动态数据操作框架
Hydro的Python项目详细描述
hydro是一个免费的开源数据api计算和服务框架,主要用于帮助web/application服务器或其他数据使用者从不同的数据流中提取数据,动态处理并呈现给不同的客户端/应用程序。在标准和统计上。=数据API
=——
。=>;水力-————
=提取应用程序/网络————
==etl===>;。=转换==>;服务器==>;客户端
=>;呈现——————————
。=——
=
——=
dbn==
——
``````
hydro使:
1变得容易。整合到**一个服务**一个处理来自[速度和批处理](http://lambda-architecture.net/)层的不同类型入站流的逻辑。
2。通过在运行时执行各种类型的优化和转换技术来优化数据检索,例如:
*采样。
*确定数据访问路径(预物化/原始数据)。
*数据流操作:查找、聚合、计算列等。
*每个用户/查询/客户端/QoS的资源分配。
3.创建多级缓存。
4.跨不同的使用者和数据流重用和共享业务逻辑。
hydro的构建方式是将数据/业务逻辑与数据提取分离开来,这样hydro可以定义不同的数据结构以从**中提取数据,但是**应用相同的处理逻辑,一旦获取数据。
=self.query_engine.get('geo_widget_stream',params)
lookup_stream,left_on=['user_id',right_on=['user_id'])
'spend':'sum'})
数据源并从中提取数据。
查询引擎使用优化器来确定访问路径,数据结构和优化逻辑,以便挖掘流。
**优化器**
优化器负责应用优化技术,以便根据标准和统计信息以最有效的方式获取流。优化器返回查询引擎要遵循的计划。
示例:
````
conf)
定义数据源并键入
plan.data\u source='vertica dash'
plan.source\u type=configurator.vertica
5天,应用类型为仪表板,中止!
因为需要快速获取数据
如果配置程序.seconds_in_day*125 and params['app_type'].to_string()='dashboard':
引发HydroException('time range is too big')
如果每天的平均记录数大于1000或客户机是convertro,则运行示例逻辑
elif plan.avg_records_per_day>;1000或params['client_id'].to_string()='convertro':
plan.template_file='device_grid_widget_sampling.sql'
plan.sampling=true
self.logger.debug('sampling for the query has been on on')
="device_grid_widget.sql"
将计划对象返回到查询引擎
return plan
````
**缓存**
hydro使用基于流和拓扑的缓存,以提高性能,在某种情况下,之前获取的流/拓扑和参数相同。流和拓扑可以跨拓扑共享,实际上,拓扑可以是其他拓扑的另一个流。
如何使用:
使用hydro通常包括以下步骤:
1。使用"pip install hydro"安装
2.使用"hydro_cli scaffold[dir_name][topologyname]`
3生成拓扑。编辑生成的文件并填写逻辑和查询。
4.本地或远程调用hydro,如下所述。
您只需克隆此项目并运行"pip install-r requirements.txt"。
强烈建议使用virtualenv,以避免依赖关系污染系统的python安装。
=——
。=>;水力-————
=提取应用程序/网络————
==etl===>;。=转换==>;服务器==>;客户端
=>;呈现——————————
。=——
=
——=
dbn==
——
``````
hydro使:
1变得容易。整合到**一个服务**一个处理来自[速度和批处理](http://lambda-architecture.net/)层的不同类型入站流的逻辑。
2。通过在运行时执行各种类型的优化和转换技术来优化数据检索,例如:
*采样。
*确定数据访问路径(预物化/原始数据)。
*数据流操作:查找、聚合、计算列等。
*每个用户/查询/客户端/QoS的资源分配。
3.创建多级缓存。
4.跨不同的使用者和数据流重用和共享业务逻辑。
hydro的构建方式是将数据/业务逻辑与数据提取分离开来,这样hydro可以定义不同的数据结构以从**中提取数据,但是**应用相同的处理逻辑,一旦获取数据。
=self.query_engine.get('geo_widget_stream',params)
lookup_stream,left_on=['user_id',right_on=['user_id'])
'spend':'sum'})
数据源并从中提取数据。
查询引擎使用优化器来确定访问路径,数据结构和优化逻辑,以便挖掘流。
**优化器**
优化器负责应用优化技术,以便根据标准和统计信息以最有效的方式获取流。优化器返回查询引擎要遵循的计划。
示例:
````
conf)
定义数据源并键入
plan.data\u source='vertica dash'
plan.source\u type=configurator.vertica
5天,应用类型为仪表板,中止!
因为需要快速获取数据
如果配置程序.seconds_in_day*125 and params['app_type'].to_string()='dashboard':
引发HydroException('time range is too big')
如果每天的平均记录数大于1000或客户机是convertro,则运行示例逻辑
elif plan.avg_records_per_day>;1000或params['client_id'].to_string()='convertro':
plan.template_file='device_grid_widget_sampling.sql'
plan.sampling=true
self.logger.debug('sampling for the query has been on on')
="device_grid_widget.sql"
将计划对象返回到查询引擎
return plan
````
**缓存**
hydro使用基于流和拓扑的缓存,以提高性能,在某种情况下,之前获取的流/拓扑和参数相同。流和拓扑可以跨拓扑共享,实际上,拓扑可以是其他拓扑的另一个流。
如何使用:
使用hydro通常包括以下步骤:
1。使用"pip install hydro"安装
2.使用"hydro_cli scaffold[dir_name][topologyname]`
3生成拓扑。编辑生成的文件并填写逻辑和查询。
4.本地或远程调用hydro,如下所述。
您只需克隆此项目并运行"pip install-r requirements.txt"。
强烈建议使用virtualenv,以避免依赖关系污染系统的python安装。