저는 BigQuery를 사용하기 위해 Google Python API를 사용하고 있습니다.파이썬으로 모든 BigQuery 작업을 반복하십시오.
jobs().list()
및 jobs().list_next()
을 사용하여 내 프로젝트의 모든 작업을 까지 페이지 매김했습니다. 나는 다음과 같은 코드로 발전기를 사용하고 있습니다 : 나는 maxResults
을 사용하는 방법에 따라, 나는 다른 작업 목록을 얻을
request = service.jobs().list(projectId=project_id,
allUsers=True,
stateFilter="done",
)
# or maxResults=500)
# or maxResults=1000)
# or maxResults=64000)
while request is not None:
response = request.execute()
for x in response["jobs"]:
yield x
request = service.jobs().list_next(request, response)
문제입니다.
maxResults
인수를 사용하지 않고 9986 개의 작업을 봅니다.maxResults=500
을 사용하면 8596 개의 작업을 봅니다.maxResults=1000
을 사용하면 6743 작업을 볼 수 있습니다.maxResults=64000
을 사용하면 6743 작업을 볼 수 있습니다.
내가 때마다 동일하게 작업의 수를 예상하고있어, 그래서 제대로 API를 사용하고 경우 잘 모르겠어요.
프로젝트의 모든 작업을 반복하는 올바른 방법은 무엇입니까?
는
아직도이 알아 내려고 일 (수 8월 14일 중부 서머 타임 15시 30분 29초 2013 년 업데이트). 나는 코드을 사용하여 @Michael Manoochehri이 친절하게 3 번 제공 한 코드를 실행했습니다. 작업의 수에 대한 다양한 정보는 각 시간을보고 서로 어떻게 관련되는지 다음과 같습니다 :
s1 -> no maxResults
s2 -> maxResults=500
s3 -> maxResults=1000
|s1| -> 10112
|s2| -> 8579
|s3| -> 6556
|s1 intersection s2| -> 8578
|s2 difference s1| -> 1
|s1 difference s2| -> 1534
|s1 intersection s3| -> 6556
|s3 difference s1| -> 0
|s1 difference s3| -> 3556
|s3 intersection s2| -> 6398
|s2 difference s3| -> 2181
|s3 difference s2| -> 158
나는 여전히 관계없이 내가 작업의 일관성 총 수를 확인할 수 없습니다 이유를 이해 할 수 없습니다
maxResults
이 사용되었습니다.
:
설명서를 찾지 못해도 list_next() 메소드가 pageToken을 처리한다고 가정 한 것 같습니다. 나는 당신이 보여준대로 시도해 보겠습니다. 감사! –
maxResults에 대해 다른 값을 사용하여 코드를 시도했지만, 내가 보낸 maxResults 값에 따라 여전히 다른 총 작업 수가 표시됩니다. 사실 maxResults가 없으므로 이제는 몇 일이 지났지 만 쿼리를 실행 중입니다.)하지만 maxResults = 500 및 maxResults = 1000 인 경우 7 월 25 일과 동일한 수의 작업이 표시됩니다. 버그입니까? –