首页 > 解决方案 > 为什么我的 Airflow MySqlOperator 插入命令被拒绝?

问题描述

我正在使用插入查询运行 dag。这是一些代码:

QUERY = '''
INSERT INTO bi.target_skus (skus)
SELECT
    distinct od.sku,
FROM
    bi.orders as od'''

t1 = MySqlOperator(
        sql=QUERY,
        mysql_conn_id = MYSQL_CONN_ID,
        task_id='target_skus',
        dag=dag)

它给了我以下错误: ERROR - (1142, "INSERT command denied to user 'xyz' for table 'target_skus'")

几点注意事项:

  1. Devops 说我的用户有权插入该表

  2. 选择命令工作正常

  3. 即使我的插入查询包含,错误消息也不包含数据库名称 (bi)。

标签: airflow

解决方案


看起来像是用户尝试插入的权限错误,但插入中的逗号也可能导致问题:

QUERY = ''' INSERT INTO bi.target_skus (skus) SELECT distinct od.sku FROM bi.orders as od'''


推荐阅读