Я пытаюсь настроить ETL из MySQL - S3 - Redshift, используя Airflow. MySQL SSL отключен, поскольку является внутренней БД.
Проблема в том, что Airflow пытается использовать SSL-соединение по умолчанию, и я не могу найти способ отключить это.
Я продолжаю получать MySQLdb._exceptions.OperationalError: (2026, 'Ошибка подключения SSL: ошибка: 1408F10B: Подпрограммы SSL: ssl3_get_record: неправильный номер версии')
В mysql_hook.py указан код ниже для подключения SSL:
if conn.extra_dejson.get('ssl', False):
# SSL parameter for MySQL has to be a dictionary and in case
# of extra/dejson we can get string if extra is passed via
# URL parameters
dejson_ssl = conn.extra_dejson['ssl']
if isinstance(dejson_ssl, six.string_types):
dejson_ssl = json.loads(dejson_ssl)
conn_config['ssl'] = dejson_ssl
Дополнительная настройка настраивается в соединениях с воздушным потоком, как показано ниже:
{
"cursor":"dictcursor",
"charset":"utf8"
}
Я не могу найти определенную команду Json для использования здесь в Интернете для отключения SSL.
Я много раз пробовал использовать такие вещи, как «ssl»: «false» и т. Д. c, но ни один из них не имеет никакого эффекта вообще.
Может ли кто-нибудь помочь с тем, что необходимо передать в nAirflow Extra для отключения SSL при подключении к MySQL БД?