管理连接

    Airflow需要知道如何连接到您的环境。其他系统和服务的主机名,端口,登录名和密码等信息在UI的部分中处理。您编写的pipeline(管道)代码将引用Connection对象的“conn_id”。

    可以使用UI或环境变量创建和管理连接。

    有关更多信息,请参阅文档。

    打开UI的Admin->Connection部分。 单击Create按钮以创建新连接。

    https://airflow.apache.org/_images/connection_create.png

    1. 使用所需的连接ID填写Conn Id字段。建议您使用小写字符和单独的带下划线的单词。
    2. 使用Conn Type字段选择连接类型。
    3. 填写其余字段。有关属于不同连接类型的字段的说明,请参阅连接类型。
    4. 单击Save按钮以创建连接。

    打开UI的Admin->Connection部分。 单击连接列表中要编辑的连接旁边的铅笔图标。

    修改连接属性,然后单击Save按钮以保存更改。

    可以使用环境变量创建Airflow pipeline(管道)中的连接。环境变量需要具有AIRFLOW_CONN_的前缀的URI格式才能正确使用连接。

    在引用Airflow pipeline(管道)中的连接时,conn_id应该是没有前缀的变量的名称。例如,如果conn_id名为,则环境变量应命名为AIRFLOW_CONN_POSTGRES_MASTER(请注意,环境变量必须全部为大写)。Airflow假定环境变量返回的值为URI格式(例如postgres://user:password@localhost:5432/masters3://accesskey:secretkey )。

    对GCP进行身份验证

    有两种方法可以使用Airflow连接到GCP。

    1. 使用应用程序默认凭据 ,例如在Google Compute Engine上运行时通过元数据服务器。
    2. 在磁盘上使用密钥文件(JSON格式)。

    默认连接ID

    默认情况下使用以下连接ID。

    BigQueryHook钩子使用。

    1. google_cloud_datastore_default

    由钩子使用。

    GoogleCloudBaseHook,,DataProcHook,和挂钩使用。

    配置连接

    Project Id (必填)

    要连接的Google Cloud项目ID。

    Keyfile Path

    磁盘上密钥文件(JSON格式)的路径。

    如果使用应用程序默认凭据则不需要

    Keyfile JSON

    磁盘上的服务帐户密钥文件(JSON格式)的内容。 如果使用此方法进行身份验证,建议 。

    如果使用应用程序默认凭据则不需要

    Scopes (逗号分隔)

    要通过身份验证的逗号分隔Google云端范围列表。

    MySQL

    MySQL连接类型允许连接MySQL数据库。

    配置连接

    主机(必填)

    要连接的主机。

    模式(选填)

    指定要在数据库中使用的模式名称。

    登陆(必填)

    指定要连接的用户名

    密码(必填)

    指定要连接的密码

    额外参数(选填)

    指定可以在mysql连接中使用的额外参数(作为json字典)。支持以下参数:

    • charset:指定连接的charset
    • local_infile:控制MySQL的LOCAL功能(允许客户端加载本地数据)。有关详细信息,请参阅。
    • unix_socket:使用UNIX套接字而不是默认套接字
    • ssl:控制使用SSL连接的SSL参数字典(这些参数是特定于服务器的,应包含“ca”,“cert”,“key”,“capath”,“cipher”参数。有关详细信息,请参阅MySQLdb文档。请注意,以便在URL表示法中很有用,此参数也可以是SSL字典是字符串编码的JSON字典的字符串。

    示例“extras”字段:

    1. {
    2. "charset": "utf8",
    3. "cursorclass": "sscursor",
    4. "local_infile": true,
    5. "unix_socket": "/var/socket",
    6. "ssl": {
    7. "cert": "/tmp/client-cert.pem",
    8. "ca": "/tmp/server-ca.pem'",
    9. "key": "/tmp/client-key.pem"
    10. }

    将连接指定为URI(在AIRFLOWCONN *变量中)时,应按照DB连接的标准语法指定它,其中附加项作为URI的参数传递(请注意,URI的所有组件都应进行URL编码)。

    举个例子:

    1. mysql://mysql_user:XXXXXXXXXXXX@1.1.1.1:3306/mysqldb?ssl=%7B%22cert%22%3A+%22%2Ftmp%2Fclient-cert.pem%22%2C+%22ca%22%3A+%22%2Ftmp%2Fserver-ca.pem%22%2C+%22key%22%3A+%22%2Ftmp%2Fclient-key.pem%22%7D