使用 to_sql 将数据从 Pandas 排序并加载到 Redshift

Sorting and loading data from Pandas to Redshift using to_sql

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

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

从 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 以按顺序正确上传数据?

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

帮不上什么忙 如果我做出了错误的假设,请发表评论,我会重新调整我的回答。