use*_*993 9 python database airflow
Doc 说:
Hooks 是外部平台和数据库的接口,如 Hive、S3、MySQL、Postgres、HDFS 和 Pig。Hooks 在可能的情况下实现一个公共接口,并充当操作符的构建块。参考
但是我们为什么需要它们?
我想从一个 Postgres 数据库中选择数据,然后存储到另一个。例如,我可以在由 python 操作员运行的 python 脚本中使用 psycopg2 驱动程序,或者气流出于某种原因应该知道我在脚本中到底在做什么,所以,我需要使用 PostgresHook 而不仅仅是 psycopg2 驱动程序?
你应该只使用 PostresHook。而不是像这样使用 psycopg2:
conn = f'{pass}:{server}@host etc}'
cur = conn.cursor()
cur.execute(query)
data = cur.fetchall()
Run Code Online (Sandbox Code Playgroud)
您只需键入:
postgres = PostgresHook('connection_id')
data = postgres.get_pandas_df(query)
Run Code Online (Sandbox Code Playgroud)
这也可以利用连接加密。
所以使用钩子更干净、更安全、更容易。
虽然可以在脚本中对连接进行硬编码并运行它,但挂钩的强大功能将允许从 UI 内编辑环境变量。
请参阅“借助 Airflow Hooks 自动执行 AWS 任务”,了解有关如何使用 Hook 的更多信息。
| 归档时间: |
|
| 查看次数: |
1169 次 |
| 最近记录: |