2017-02-01 17 views
1

Для Apache Airflow я устанавливаю соединение с базой данных с помощью sql_alchemy_conn = ibm_db_sa://{USERNAME}:{PASSWORD}@{HOST}:50000/airflow в файле airflow.cfg.Apache Airflow db2 Connection

Когда я запустил airflow initdb, он всплывает KeyError: 'ibm_db_sa'. Кто-нибудь сталкивается с подобной ошибкой? как его решить? Я не могу найти ответ при поиске в Интернете.

===============

Вот более конкретное сообщение об ошибке:

airflow initdb 
[2017-02-01 15:55:57,135] {__init__.py:36} INFO - Using executor SequentialExecutor 
DB: ibm_db_sa://db2inst1:***@localhost:50000/airflow 
[2017-02-01 15:55:58,151] {db.py:222} INFO - Creating tables 
Traceback (most recent call last): 
    File "/opt/anaconda/bin/airflow", line 15, in <module> 
    args.func(args) 
    File "/opt/anaconda/lib/python2.7/site-packages/airflow/bin/cli.py", line 524, in initdb 
    db_utils.initdb() 
    File "/opt/anaconda/lib/python2.7/site-packages/airflow/utils/db.py", line 106, in initdb 
    upgradedb() 
    File "/opt/anaconda/lib/python2.7/site-packages/airflow/utils/db.py", line 230, in upgradedb 
    command.upgrade(config, 'heads') 
    File "/opt/anaconda/lib/python2.7/site-packages/alembic/command.py", line 174, in upgrade 
    script.run_env() 
    File "/opt/anaconda/lib/python2.7/site-packages/alembic/script/base.py", line 416, in run_env 
    util.load_python_file(self.dir, 'env.py') 
    File "/opt/anaconda/lib/python2.7/site-packages/alembic/util/pyfiles.py", line 93, in load_python_file 
    module = load_module_py(module_id, path) 
    File "/opt/anaconda/lib/python2.7/site-packages/alembic/util/compat.py", line 79, in load_module_py 
    mod = imp.load_source(module_id, path, fp) 
    File "/opt/anaconda/lib/python2.7/site-packages/airflow/migrations/env.py", line 74, in <module> 
    run_migrations_online() 
    File "/opt/anaconda/lib/python2.7/site-packages/airflow/migrations/env.py", line 65, in run_migrations_online 
    compare_type=COMPARE_TYPE, 
    File "<string>", line 8, in configure 
    File "/opt/anaconda/lib/python2.7/site-packages/alembic/runtime/environment.py", line 773, in configure 
    opts=opts 
    File "/opt/anaconda/lib/python2.7/site-packages/alembic/runtime/migration.py", line 159, in configure 
    return MigrationContext(dialect, connection, opts, environment_context) 
    File "/opt/anaconda/lib/python2.7/site-packages/alembic/runtime/migration.py", line 103, in __init__ 
    self.impl = ddl.DefaultImpl.get_by_dialect(dialect)(
    File "/opt/anaconda/lib/python2.7/site-packages/alembic/ddl/impl.py", line 65, in get_by_dialect 
    return _impls[dialect.name] 
KeyError: 'ibm_db_sa' 

ответ

0

Вы установили необходимый пакет для db2? Например. pip install ibm_db_sa. Кстати, на странице pypi указано, что она совместима только с python 3.

Обратите внимание, что db2 официально не поддерживается как сервер для Airflow.