Python BigQuery:执行脚本创建表时出错

Python BigQuery:执行脚本创建表时出错,python,google-cloud-platform,google-bigquery,Python,Google Cloud Platform,Google Bigquery,我正在尝试通过python脚本运行SQL查询,以自动为表提供数据 但是,我收到以下错误消息: google.api_core.exceptions.BadRequest:400 GEThttps://bigquery.googleapis.com/bigquery/v2/projects/****/查询/*************子查询太多或查询太复杂。 当我在Bigquery上运行该请求时,它可以正常工作,但当它通过python脚本在API上执行时,它就不工作了 以下是阻止我的请求的代码部分:

我正在尝试通过python脚本运行SQL查询,以自动为表提供数据

但是,我收到以下错误消息:

google.api_core.exceptions.BadRequest:400 GEThttps://bigquery.googleapis.com/bigquery/v2/projects/****/查询/*************子查询太多或查询太复杂。

当我在Bigquery上运行该请求时,它可以正常工作,但当它通过python脚本在API上执行时,它就不工作了

以下是阻止我的请求的代码部分:

 114:, SCOPE_FINAL AS
 115:(
 116:   
 117:  select
 118:    SCOPE_PARCOURS_2.DATE
 119:    , SCOPE_PARCOURS_2.SESSIONID
 120:   , CONCAT(NOM1.Name_CheckPoint
 121:                   , CASE WHEN NOM2.Name_CheckPoint IS NOT NULL THEN ' > ' ELSE '' END , CASE WHEN NOM2.Name_CheckPoint IS NOT NULL THEN NOM2.Name_CheckPoi
 122:                   , CASE WHEN NOM3.Name_CheckPoint IS NOT NULL THEN ' > ' ELSE '' END , CASE WHEN NOM3.Name_CheckPoint IS NOT NULL THEN NOM3.Name_CheckPoi
 123:                   , CASE WHEN NOM4.Name_CheckPoint IS NOT NULL THEN ' > ' ELSE '' END , CASE WHEN NOM4.Name_CheckPoint IS NOT NULL THEN NOM4.Name_CheckPoi
 124:                   , CASE WHEN NOM5.Name_CheckPoint IS NOT NULL THEN ' > ' ELSE '' END , CASE WHEN NOM5.Name_CheckPoint IS NOT NULL THEN NOM5.Name_CheckPoi
 125:                   ) PARCOURS
 126:    , SCOPE_PARCOURS_2.Name_CheckPoint
 127:    , SCOPE_PARCOURS_2.NUMSTEP
 128:    , SCOPE_PARCOURS_2.NB_ENTREE_TUNNEL
 129:    , SCOPE_PARCOURS_2.NB_LEAD
 130:  from SCOPE_PARCOURS_2
 131:  LEFT OUTER JOIN SCOPE_PARCOURS_2 NOM1
 132:   ON SCOPE_PARCOURS_2.DATE = NOM1.DATE
 133:   AND SCOPE_PARCOURS_2.SESSIONID = NOM1.SESSIONID
 134:   AND NOM1.NUMSTEP = 1
 135:  LEFT OUTER JOIN SCOPE_PARCOURS_2 NOM2
 136:   ON SCOPE_PARCOURS_2.DATE = NOM2.DATE
 137:   AND SCOPE_PARCOURS_2.SESSIONID = NOM2.SESSIONID
 138:   AND NOM2.NUMSTEP = 2
 139:   LEFT OUTER JOIN SCOPE_PARCOURS_2 NOM3
 140:   ON SCOPE_PARCOURS_2.DATE = NOM3.DATE
 141:   AND SCOPE_PARCOURS_2.SESSIONID = NOM3.SESSIONID
 142:   AND NOM3.NUMSTEP = 3
 143:   LEFT OUTER JOIN SCOPE_PARCOURS_2 NOM4
 144:   ON SCOPE_PARCOURS_2.DATE = NOM4.DATE
 145:   AND SCOPE_PARCOURS_2.SESSIONID = NOM4.SESSIONID
 146:   AND NOM4.NUMSTEP = 4
 147:   LEFT OUTER JOIN SCOPE_PARCOURS_2 NOM5
 148:   ON SCOPE_PARCOURS_2.DATE = NOM5.DATE
 149:   AND SCOPE_PARCOURS_2.SESSIONID = NOM5.SESSIONID
 150:   AND NOM5.NUMSTEP = 5
 151: UNION ALL
 152:   select
 153:    DATE
 154:    , SESSIONID
 155:   , 'VIDE' PARCOURS
 156:    , Name_CheckPoint
 157:    , NUMSTEP
 158:    , NB_ENTREE_TUNNEL
 159:    , NB_LEAD
 160:  from SCOPE_AUTRE```

当执行一个包含许多复杂步骤的查询以获得结果时,会发生此错误

因此,为了避免此错误消息,如果您的用例允许,您可以尝试使用临时表将查询拆分为更简单的查询,并尝试避免在同一个表上出现如此多的左连接。 这里有一份关于如何避免重复连接的建议文档[1]


[1]

问题:为什么MySQL被标记?你能分享调用你的查询的python代码吗?