我正在尝试使用Airflow创建与oracle数据库实例(oracle:thin)的连接 .
根据他们的documentation我输入了我的主机名,后跟端口号和SID:
主持人:example.com:1524/sid
填补其他领域:
Conn Type :Oracle
Schema :用户名(documentation表示:使用您的用户名进行架构)
Login :用户名
Password :* * *
Build 连接后,它会为我尝试执行的每个查询提供保存错误代码(ORA-12514) . 好像oracle不让气流连接:
ORA-12514:TNS:监听器当前不知道连接描述符中请求的服务
有人曾经遇到过同样的问题 . 我的意思是,对于像这样的大平台来说,连接数据库应该不是问题 . 或者我可能做错了什么 . 谢谢
版本:Airflow v1.7.0,Oracle11g
EDIT:
我使用的是我在Oracle SQLDeveloper客户端中使用的相同主机名:
3 回答
对于服务名称使用,如果您将(port,schema和extra)留空,则可以将完整的oracle连接描述符放在Host下:
(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = mysidname)))
在深入研究源代码之后,最终它是如何为我工作的:
Conn类型:Oracle
主持人:example.com
schema:用户名
login:用户名
端口:端口号
extra:{“sid”:“my sid”,“dsn”:“example.com”}
您的连接设置有问题,您的设置未正确加载到oracle挂钩,或者您缺少保存/加载连接设置的python包 . 您可以通过硬编码您的凭据来测试它 .
https://github.com/airbnb/airflow/blob/master/airflow/hooks/oracle_hook.py