为什么我的Airflow MySqlOperator插入命令被拒绝?

时间:2019-11-20 16:31:24

标签: airflow

我正在运行带有插入查询的问题。这是一些代码:

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)。

2 个答案:

答案 0 :(得分:0)

这看起来像是标准的MySQL“权限不足”错误。

您确定可以与用户一起执行INSERT,而不管DBA在说什么?您应该使用另一种工具(例如MySQL Workbench)测试相同的操作,以与在Airflow中建立连接的方式相同,即,相同的用户,相同的密码,相同的默认架构。

答案 1 :(得分:0)

这似乎是用户尝试插入的特权错误,但是插入中的逗号也可能引起问题:

QUERY =''' 插入bi.target_skus(skus) 选择     独特的od.sku 从     双阶为od'''