我想在我的mysql数据库中进行一些特殊的查询,这些数据库当前位于aws rds上。我在Airflow UI上创建了一个包含所有必要凭据的连接,但数据库没有显示在Data Profiling> Ad hoc Query部分下。
感谢任何帮助。谢谢!
答案 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查询。
在“管理”标签下创建了一个新连接。
定义Conn ID {任何合适的名字}
Conn Type - MySQL
主机名 - AWS RDS上MySQL的集群端点
schema - 创建气流表的MySQL模式。
登录/密码 - 在创建数据库时定义
port --3306 保存上述设置。
现在转到数据概要分析选项卡,新连接将可用。