쿼리가 완료되기 전에 완료된 Big Query 작업 상태

자크 케이건

BigQuery를 사용하여 tsv 테이블을 만드는 scala 애플리케이션이 있습니다. 사용자가 데이터에 액세스하려고 할 때 쿼리 작업이 완료되면 반환하고 싶습니다. 그렇지 않으면 여전히 실행 중이라고 알려줍니다.

내 쿼리 작업 생성은 다음과 같습니다.

        bigQuery.create(
          JobInfo.of(
            QueryJobConfiguration
              .newBuilder(mySql)
              .setAllowLargeResults(true)
              .setDestinationTable(TableId.of("MyReports", s"${tableName}_$random".replace("-", "_")))
              .setWriteDisposition(JobInfo.WriteDisposition.WRITE_TRUNCATE)
              .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED)
              .setUseLegacySql(false)
              .build()
          )
        )

데이터를 얻는 방법은 다음과 같습니다.

override def getData(jobId: String): IO[Either[Throwable, String]] = {
  bigQueryService.getMyJob(jobId).map {
    case Right(None) | Right(Some(null)) => Right("Data not found, check provided job name")
    case Right(Some(r)) =>
      if (r.isDone) {
        Try(r.getQueryResults()
        .iterateAll()
        .asScala
        .map(_.asScala.map(_.getValue.toString).mkString("\t"))
        .mkString("\n")
        ).toEither
      } else {
        Right(s"Job not completed, current status is ${r.getStatus.getState.toString}")
      }
    case Left(err: Throwable) => Left(err)
  }
}

계산이 끝날 때 평가하기 위해 Cats Effect IO를 사용하고 있습니다. 내 문제는 getQueryResults쿼리가 완료 될 때까지 작업 메서드가 중단 된다는 것 입니다. BQ 작업에서 다른 방법을 확인하여이를 방지하려고합니다 isDone.. 내 테스트에서 어떤 이유로 isDone쿼리가 완료되기 전에 true를 반환합니다. BigQuery 콘솔을 확인할 때 직접 확인합니다. 이로 인해 사용자의 요청은 의도 한대로 메시지를 반환하는 대신 쿼리가 완료 될 때까지 항상 중단됩니다.

쿼리가 계속 실행되는 동안 작업을 어떻게 완료 할 수 있습니까? 작업과 쿼리 사이에 약간의 차이가 있습니까? 아니면 내가 놓친 다른 것이 있습니까? 제안 해 주셔서 감사합니다.

Shollyman

jobs.getQueryResultstimeoutMs매달린 GET 의미 체계를 제어 하는 선택적 매개 변수가 있습니다. 지정된 간격까지 또는 지정되지 않은 경우 10 초까지 작업 완료를 기다립니다. 작업이 완료되면 상관없이 즉시 반환됩니다.

시간 제한을 0으로 설정하면 즉시 응답이 반환되며 결과 통계를 확인하여 작업이 완료되었는지 확인할 수 있습니다. 그렇다면 응답에는 스키마와 데이터 행의 첫 페이지도 포함되어야합니다.

REST 참조의 추가 정보 : https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/getQueryResults

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Spring-batch가 종료 상태로 종료 됨 : 실제 작업이 완료되기 전에 완료 되었습니까?

분류에서Dev

작업이 완료되기 전에 NodeJS 비동기가 완료 됨

분류에서Dev

Firebasequery가 완료되기 전에 Android 비동기 작업이 완료 됨

분류에서Dev

C # 비동기 작업이 완료되기 전에 완료 됨

분류에서Dev

예상 전에 작업이 완료 됨

분류에서Dev

모든 작업이 완료되기 전에 ThreadPoolExecutor 종료

분류에서Dev

쓰기가 완료되기 전에 IndexedDB 읽기 완료

분류에서Dev

작업이 완료되기 전에 반환되는 완료 핸들러

분류에서Dev

쿼리가 완료되기 전에 응답 보내기

분류에서Dev

Azure DevOps 쿼리에서 총 예상 및 완료된 작업을 수행하는 방법이 있나요?

분류에서Dev

완료 전에 완료 처리기 True

분류에서Dev

완료되지 않음에서 완료된 PHP로 상태 변경

분류에서Dev

SwingWorker가 다른 작업을 실행하기 전에 완료되기를 기다리는 중

분류에서Dev

node.js에서 작업이 완료되기를 기다리는 중

분류에서Dev

node.js에서 작업이 완료되기를 기다리는 중

분류에서Dev

비동기 작업이 완료되기 전에 데이터가 변경된 경우 setState 작업을 취소해야합니까?

분류에서Dev

작업이 완료되기 전에 WPF 창 닫기

분류에서Dev

다음 작업을 실행하기 전에 요청이 완료되기를 기다리는 중

분류에서Dev

작업이 완료되기 전에 약속 해결 화재

분류에서Dev

.NET / C #에서 이벤트가 완료된 후 작업 실행

분류에서Dev

chrome.webNavigation.onCompleted가 완료되기 전에 시작 되었습니까?

분류에서Dev

이전 작업이 완료되기 전에 작업이 시작됨

분류에서Dev

이 작업이 완료되기 전에 코드가 실행되는 이유는 무엇입니까?

분류에서Dev

각 루프 (Ajax 사용)가 완료되기 전에 anothing 작업을 시작하는 방법

분류에서Dev

Cloud Function에서 쓰기가 완료되면 값 업데이트

분류에서Dev

재귀가 완료된 후 작업

분류에서Dev

Node.js : 노드는 종료하기 전에 항상 setTimeout ()이 완료되기를 기다리나요?

분류에서Dev

첫 번째 Jquery가 완료되기 전에 두 번째 Jquery json이 시작됨

분류에서Dev

PostgreSQL : 완료되기 전에 dblink를 통해 쿼리의 PID 가져 오기

Related 관련 기사

  1. 1

    Spring-batch가 종료 상태로 종료 됨 : 실제 작업이 완료되기 전에 완료 되었습니까?

  2. 2

    작업이 완료되기 전에 NodeJS 비동기가 완료 됨

  3. 3

    Firebasequery가 완료되기 전에 Android 비동기 작업이 완료 됨

  4. 4

    C # 비동기 작업이 완료되기 전에 완료 됨

  5. 5

    예상 전에 작업이 완료 됨

  6. 6

    모든 작업이 완료되기 전에 ThreadPoolExecutor 종료

  7. 7

    쓰기가 완료되기 전에 IndexedDB 읽기 완료

  8. 8

    작업이 완료되기 전에 반환되는 완료 핸들러

  9. 9

    쿼리가 완료되기 전에 응답 보내기

  10. 10

    Azure DevOps 쿼리에서 총 예상 및 완료된 작업을 수행하는 방법이 있나요?

  11. 11

    완료 전에 완료 처리기 True

  12. 12

    완료되지 않음에서 완료된 PHP로 상태 변경

  13. 13

    SwingWorker가 다른 작업을 실행하기 전에 완료되기를 기다리는 중

  14. 14

    node.js에서 작업이 완료되기를 기다리는 중

  15. 15

    node.js에서 작업이 완료되기를 기다리는 중

  16. 16

    비동기 작업이 완료되기 전에 데이터가 변경된 경우 setState 작업을 취소해야합니까?

  17. 17

    작업이 완료되기 전에 WPF 창 닫기

  18. 18

    다음 작업을 실행하기 전에 요청이 완료되기를 기다리는 중

  19. 19

    작업이 완료되기 전에 약속 해결 화재

  20. 20

    .NET / C #에서 이벤트가 완료된 후 작업 실행

  21. 21

    chrome.webNavigation.onCompleted가 완료되기 전에 시작 되었습니까?

  22. 22

    이전 작업이 완료되기 전에 작업이 시작됨

  23. 23

    이 작업이 완료되기 전에 코드가 실행되는 이유는 무엇입니까?

  24. 24

    각 루프 (Ajax 사용)가 완료되기 전에 anothing 작업을 시작하는 방법

  25. 25

    Cloud Function에서 쓰기가 완료되면 값 업데이트

  26. 26

    재귀가 완료된 후 작업

  27. 27

    Node.js : 노드는 종료하기 전에 항상 setTimeout ()이 완료되기를 기다리나요?

  28. 28

    첫 번째 Jquery가 완료되기 전에 두 번째 Jquery json이 시작됨

  29. 29

    PostgreSQL : 완료되기 전에 dblink를 통해 쿼리의 PID 가져 오기

뜨겁다태그

보관