0

我已经构建了一些工具来为引用动态 Redshift 表的用户创建前端列表框。表中的新项目,它们会自动出现在列表中。

我想将列表按字母顺序放在数据库中,以便动态列表框按该顺序显示数据。

从 API 下载列表后,我尝试在上传之前在 Pandas 数据框中按字母顺序对列表进行排序。这完美地工作:

df.sort_values(['name'], inplace=True, ascending=True, kind='heapsort')

但是当我尝试按该顺序上传到 Redshift 时,它会在上传时丢失该顺序。数据出现在按字母顺序排列的段中。

db_conn = create_engine('<redshift connection>')

obj.to_sql('table_name', db_conn, index = False, if_exists = 'replace')

由于第三方工具 (Alteryx) 的工作方式,我需要在数据库中按字母顺序保存这些数据。

如何修改to_sql以按顺序正确上传数据?

4

1 回答 1

0

在将数据摄取到 redshift 中时,数据会分布在 redshift 集群中每个节点上的切片之间。
我的建议是在需要排序的列上创建一个排序键。在该列上拥有排序键后,您可以运行 Vacuum 命令对数据进行排序。
对不起!我对 Python/Pandas 帮不上什么忙

如果我做了一个错误的假设,请发表评论,我会重新调整我的答案。

于 2017-10-06T16:52:00.443 回答