1. etl(Extract-Transform-Load)
大数据基础工作,数据抽取、转换、装载
2. kettle
是一款etl工具,大数据必须会一个etl工具。kettle很简单,相当于一个图形化编程工具。
3. another redis
redis管理工具
4. 事件驱动
Nginx是一个开源的高性能的Web服务器和反向代理服务器,它以事件驱动的方式处理请求。
那啥是事件驱动?事件驱动又有啥好处?
事件驱动是一种计算机程序设计范式,核心思想是程序的执行流程由事件的发生来驱动。也就是说程序等待事件的发生,而不是通过顺序执行来推动。当某个事件发生时,系统会触发相应的事件处理程序(回调函数),该处理程序负责响应事件并执行相关的操作。
就像饭店吃饭一样,如果一个客人从进饭店,到吃完结账,一直都一个服务员服务,那效率肯定高不了,必然会浪费大部分时间在等待上。而事件驱动,服务员只需要知道发生什么事件做什么动作,服务员就忙起来了。
5. mysql查询过程中的中间结果集怎么存的?
使用Memory存储引擎(之前叫HEAP)存储在内存里,这个存储引擎的数据都放在内存里。
但是MySQL 的查询优化器会根据查询的复杂性、表的大小、可用内存等多个因素来决定在查询过程中使用Memory还是MyISAM,MyISAM是存磁盘的,然后MyISAM又不缓存数据,只缓存索引(而且数据和索引是两个文件分开存储),因此这时生成的临时表的性能对于查询会有损失。
6. kettle发送put请求
需求是:发送put请求,要在body里传JSON数据。
一开始直接设置了常量,把json字符串写到常量,然后在body选项选中常量值。但是发现创建索引并没有传过去。
经过排查发现,不能直接传个字符串过去,要用js代码转一下,例如:
var body = JSON.stringify({"settings":{"analysis":{"analyzer":{"default":{"type": "ik_max_word"}}}}});
JSON.stringify可以将js对象转为字符串