Python BigQuery:执行脚本创建表时出错
我正在尝试通过python脚本运行SQL查询,以自动为表提供数据 但是,我收到以下错误消息: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上执行时,它就不工作了 以下是阻止我的请求的代码部分:
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代码吗?