与MySQL的气流连接

时间:2018-02-12 14:51:25

标签: mysql airflow

我想在我的mysql数据库中进行一些特殊的查询,这些数据库当前位于aws rds上。我在Airflow UI上创建了一个包含所有必要凭据的连接,但数据库没有显示在Data Profiling> Ad hoc Query部分下。

感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:3)

对于原始问题,OP可能只需要安装python-mysql适配器。

我遇到了类似的问题。

对我来说,这个问题是由于我的系统上没有安装依赖项。

当我尝试连接到Postgres数据库时,我安装了python-postgres适配器psycopg2

pip install psycopg2

我重新启动了Airflow网络服务器,Postgres连接开始在Ad Hoc Query下拉列表中填充。

以下是我如何识别此问题。

我遇到了同样的问题,试图在AdHoc查询下拉列表中显示与RDS Postgres服务器的连接。复制现有sqlite_default connection后,下拉列表似乎只包含Sqlite连接。这是近乎香草的默认Airflow配置。似乎没有列出连接,因为db.get_hook() returned None

深入研究代码,我能够确定from airflow.hooks.postgres_hook import PostgresHook失败并出现如下错误:

*** ImportError: No module named 'psycopg2'

使用交互式python调试器(例如,Pdb,通过import pdb; pdb.set_trace()),OP可能会发现类似的错误消息,即:

(Pdb) from airflow.hooks.mysql_hook import MySqlHook *** ImportError: No module named 'MySQLdb'

答案 1 :(得分:0)

希望现在必须解决这个问题。 我按照这些步骤操作,并能够在数据分析下运行adhoc查询。

  1. 在“管理”标签下创建了一个新连接。

    定义Conn ID {任何合适的名字}

    Conn Type - MySQL

    主机名 - AWS RDS上MySQL的集群端点

    schema - 创建气流表的MySQL模式。

    登录/密码 - 在创建数据库时定义

    port --3306 保存上述设置。

  2. 现在转到数据概要分析选项卡,新连接将可用。