【问题标题】:Testing data between S3 and Redshift在 S3 和 Redshift 之间测试数据
【发布时间】:2020-07-14 21:52:07
【问题描述】:

目前我正在尝试找出一种策略来自动化以下测试场景。数据(csv 文件)已从本地服务器提取到 S3,然后使用胶水转换 (ETL) 到 Redshift

  1. 比较本地服务器文件和 Amazon S3 (csv) 之间的数据,即比较位于两个差异服务器中的两个文件的全部内容。
  2. 比较 Amazon S3 和 Amazon Redshift 之间的数据(在将数据从 S3 提取、转换和加载 (ETL) 到 Redshift 之后)。 请建议是否有任何 SIT 测试框架来测试本地到 AWS 云的迁移。

是否可以使用 python-pycharm 从 s3 和 Redshift 读取数据到 Pandas 数据帧,以便我们可以比较数据帧中的数据?如果是这样,请建议如何读入数据帧。

【问题讨论】:

  • 你在寻找什么样的输出?您是否想查看整行,在该行的某处有一个不同之处?或者您最想知道在两个商店之间添加/删除了哪些主键?数据是否有任何时间戳可用于比较(例如 LastModified 时间)?数据有多大(有多少行,文件有多大)?随意编辑您的问题以添加这些详细信息,而不是通过评论来回答。

标签: python-3.x testing amazon-s3 qa


【解决方案1】:

要从 s3 和 Redshift 读取数据,您可以尝试使用 red-panda 库:https://github.com/jucyai/red-panda。使用这个库,您可以直接从 S3 和 Redshift 获取数据到 pandas.DataFrame

rp = RedPanda()
df_s3 = rp.s3_to_df(s3_bucket, s3_key) 
df_redshift = rp.redshift_to_df("select * from table_name")

获得两个数据框后,您可以使用df_s3.equals(df_redshift) 来测试相等性。如果它们具有相同的形状和元素,则结果为 True。在此处查看此方法的 pandas 文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.equals.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-05
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 2020-10-03
    • 1970-01-01
    相关资源
    最近更新 更多