月度记录-2024-1月

81 阅读2分钟

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对象转为字符串