【发布时间】:2018-07-22 18:44:23
【问题描述】:
我想对当前位于 aws rds 上的 mysql 数据库进行一些临时查询。我在 Airflow UI 上创建了一个包含所有必要凭据的连接,但是数据库没有显示在 Data Profiling>Ad hoc Query 部分下。
感谢任何帮助。谢谢!
【问题讨论】:
-
所以;你最近又试了一次吗?因为您描述的操作应该可以正常工作。
我想对当前位于 aws rds 上的 mysql 数据库进行一些临时查询。我在 Airflow UI 上创建了一个包含所有必要凭据的连接,但是数据库没有显示在 Data Profiling>Ad hoc Query 部分下。
感谢任何帮助。谢谢!
【问题讨论】:
希望这个问题现在必须解决。 我遵循这些步骤,能够在数据分析下运行即席查询。
在“管理”选项卡下创建了一个新连接。
定义的 Conn ID {任何合适的名称}
连接类型 -- MySQL
主机名 -- AWS RDS 上 MySQL 的集群端点
schema -- 创建气流表的 MySQL 模式。
登录名/密码——在创建数据库时定义
端口--3306 保存以上设置。
现在移动到数据分析选项卡,新连接将可用。
【讨论】:
对于原始问题,OP 可能只需要安装一个 python-mysql 适配器。
我刚刚遇到了类似的问题。
对我来说,这个问题是由于我的系统上缺少安装的依赖项。
当我尝试连接到 Postgres 数据库时,我安装了 python-postgres 适配器 psycopg2:
pip install psycopg2
我重新启动了 Airflow Web 服务器,Postgres 连接开始填充在 Ad Hoc Query 下拉列表中。
这是我发现此问题的方法。
我在尝试连接到 RDS Postgres 服务器时遇到了同样的问题,该问题出现在 AdHoc 查询下拉列表中。复制现有的sqlite_default connection 后,下拉列表似乎只包含 Sqlite 连接。这是一个近乎普通的默认气流配置。似乎连接未列出,因为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'
【讨论】: