我正在尝试将 Python 代码中的批量数据从 API 加载到我的数据仓库。我专门使用的库是 Boto 和 psycopg2。将数据/文件加载到 S3 后,我将触发 SQL 脚本以将数据从 S3 复制到 amazon redshift。
现在,重点是如果有任何错误,我的Python代码将以状态1退出。每次我都需要去检查STL_LOAD_ERRORS表来检查错误。 我想将其提取到代码的变量中并将其写入日志文件。
请告诉我这是否可能,如果可能,请告诉我如何做。
最佳答案
这很笼统,但可以满足您的需求
import psycopg2
import logging
# connect to database somewhere up here
data_q = """
COPY COMMAND
"""
error_q = """
SELECT filename, err_reason FROM
STL_LOAD_ERRORS
ORDER BY starttime DESC LIMIT 1;
"""
def main():
with conn.cursor() as cursor:
try:
cursor.execute(data_q)
except psycopg2.Error as e:
cursor.execute(error_q)
err = cursor.fetchone()
logging.error('{} failed to upload due to {}'.format(*err))
conn.rollback()
if __name__ == "__main__":
main()
关于python - 如何在本地错误日志文件中获取 Redshift 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49808860/