气流 <--> Greenplum
Airflow <--> Greenplum
是否可以建立从 Airflow 到 Greenplum 的连接?请记住,Greenplum 是基于 PostgreSQL 的,是否可以建立与 Greenplum 主服务器的连接?
没有。快速查看 Airflow github 回购表明他们正在使用主键约束加上一个带有唯一约束的附加列,这在 Greenplum 中不受支持。
例如:
op.create_table(
'user',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('username', sa.String(length=250), nullable=True),
sa.Column('email', sa.String(length=500), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('username')
)
在 Greenplum 中,您不能在 (id) 上有主键而在 (username) 上有另一个唯一约束。
他们的 github 存储库也没有提及其他 MPP 数据库平台,如 Netezza 和 Teradata。也许 Airflow 适用于小数据、数据科学,但这听起来有点矛盾。
安德里亚,
我认为您可以使用 Airflow 对 Greenplum 中的分析数据进行 运行 ETL。
Jon 提供的 "no" 答案显然是关于使用 Greenplum 作为后端元数据存储,Airflow 在内部使用它来跟踪其 DAG 和任务。 Jon 用作示例的代码是 Airflow 如何创建用于其后端元数据存储的表,这与您要管理的 Greenplum 数据仓库的内容无关。
我怀疑您反而对 Greenplum 感兴趣,因为您的大量分析数据,而不是 Airflow 后端。所以答案几乎可以肯定!
您甚至可以通过使用标准的 PostgreSQL 挂钩和运算符获得:
我这么说是因为 Greenplum 似乎可以使用标准的 PostgreSQL Python API:
https://gpdb.docs.pivotal.io/4330/admin_guide/managing/access_db.html
如果 Airflow 的标准 PostgreSQL 挂钩和运算符不适合您,您可以轻松创建自己的。例如,参见我在 Snowflake 数据仓库中的工作;将 Snowflake Python 连接器集成到气流中是一件简单的事情。
https://github.com/aberdave/airflow-snowflake
如果所有这些都失败,您应该能够使用 ODBC 或 JDBC 通过 Airflow 在 Greenplum 中管理日期。我选择了 Python 来使用 Snowflake,因为定制他们的 Python 连接器非常容易。
是否可以建立从 Airflow 到 Greenplum 的连接?请记住,Greenplum 是基于 PostgreSQL 的,是否可以建立与 Greenplum 主服务器的连接?
没有。快速查看 Airflow github 回购表明他们正在使用主键约束加上一个带有唯一约束的附加列,这在 Greenplum 中不受支持。
例如:
op.create_table(
'user',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('username', sa.String(length=250), nullable=True),
sa.Column('email', sa.String(length=500), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('username')
)
在 Greenplum 中,您不能在 (id) 上有主键而在 (username) 上有另一个唯一约束。
他们的 github 存储库也没有提及其他 MPP 数据库平台,如 Netezza 和 Teradata。也许 Airflow 适用于小数据、数据科学,但这听起来有点矛盾。
安德里亚,
我认为您可以使用 Airflow 对 Greenplum 中的分析数据进行 运行 ETL。
Jon 提供的 "no" 答案显然是关于使用 Greenplum 作为后端元数据存储,Airflow 在内部使用它来跟踪其 DAG 和任务。 Jon 用作示例的代码是 Airflow 如何创建用于其后端元数据存储的表,这与您要管理的 Greenplum 数据仓库的内容无关。
我怀疑您反而对 Greenplum 感兴趣,因为您的大量分析数据,而不是 Airflow 后端。所以答案几乎可以肯定!
您甚至可以通过使用标准的 PostgreSQL 挂钩和运算符获得:
我这么说是因为 Greenplum 似乎可以使用标准的 PostgreSQL Python API: https://gpdb.docs.pivotal.io/4330/admin_guide/managing/access_db.html
如果 Airflow 的标准 PostgreSQL 挂钩和运算符不适合您,您可以轻松创建自己的。例如,参见我在 Snowflake 数据仓库中的工作;将 Snowflake Python 连接器集成到气流中是一件简单的事情。
https://github.com/aberdave/airflow-snowflake
如果所有这些都失败,您应该能够使用 ODBC 或 JDBC 通过 Airflow 在 Greenplum 中管理日期。我选择了 Python 来使用 Snowflake,因为定制他们的 Python 连接器非常容易。