实际生产中,公司使用了CitusCloud作为生产数据库。但是维护高性能数据库同时若存储大量数据成本也会升高。 由于数据量非常庞大,我们数据线上保留策略为90天,每日将90天前的数据Dump到S3然后从库中删除。 但有的时候,客户想知道整个history中某个事件的历史,虽然数据库中已不存在这些记录,但客户就是上帝,我们需要想办法满足。
AWS提供了Athena工具,就是为了解决海量离线数据的分析查询。 它的大致原理就是将S3中存储的结构化文本对象(例如datadump、CSV等)直接视作数据表,然后用户可以在Athena控制台直接执行SQL语句来查询数据。 收费则是按扫描量收费——($5 per TB of data scanned)虽然看起来不算贵,但实际使用中还是有不少弊端的:
- 语法兼容性
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
version="${VERSION:-0.14.0}" | |
arch="${ARCH:-linux-amd64}" | |
bin_dir="${BIN_DIR:-/usr/local/bin}" | |
wget "https://github.com/prometheus/node_exporter/releases/download/v$version/node_exporter-$version.$arch.tar.gz" \ | |
-O /tmp/node_exporter.tar.gz | |
mkdir -p /tmp/node_exporter |
Traefik 是一个开源的反向代理与负载均衡工具,其设计非常适合现代微服务模式。
除了传统的反向代理、loadblance功能,Traefik功能还包括:
- 非停机更新配置
- HTTPS支持
- 线路中断、重试(Circuit breakers, retry)
- 一个漂亮的WebUI
- High Availability
- metrics,log,Rest API
参考parallelism-in-one-line 步骤整理如图下
from multiprocessing import Pool
from multiprocessing.dummy import Pool
简言之,IO 密集型任务选择multiprocessing.dummy,CPU 密集型任务选择multiprocessing ↩ 然后实例化Pool即可使用map
pool = Pool(6)