将KissMetrics网站分析数据从S3存储桶加载到Postgres数据库中
km2pg的Python项目详细描述
km2pg
将指定的s3 bucket中的原始kissmetrics数据加载到指定的postgres数据库中。
安装
在此目录中,运行以下命令:
python setup.py install
使用
一旦安装,名为km2pg的新脚本现在应该可以在path中使用,它可以如下使用:
- km2pg
- -b name_of_s3_bucket -m postgres_hostname -p postgres_port -d postgres_dbname -u postgres_username -w postgres_passwd -a aws_access_key -s aws_secret_key
有关更多详细信息,请参见km2pg–帮助。
需要
- boto: Python library for AWS
- psycopg: postgres Python client library
注释
该脚本可以安全地从amazon spot实例运行,其中检查点非常重要,因为脚本可以随时中断。
策略
kissmetrics将原始数据存储到多个json文件中:
- bucket/
- revisions/
- 1.json 2.json … N.json
kissmetrics提供了一个“索引”文件,位于:
bucket/index.csv
这个索引文件列出了kissmetrics当前存放在上面“revisions”文件夹中的所有json文件。
我们的策略是按照json文件在index.csv中的显示顺序(碰巧是按照时间的增长顺序)处理它们。
在Postgres实例中,我们将通过index.csv来保持进度。这种方法假设kissmetrics只会附加到index.csv,而不会编辑。