워크플로를 사용하여 Cloud Storage에서 BigQuery에 데이터 로드
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
일련의 로드 조정 단계를 실행한 후 Cloud Functions를 호출하여 BigQuery에서 데이터를 변환합니다.
더 살펴보기
이 코드 샘플이 포함된 자세한 문서는 다음을 참조하세요.
코드 샘플
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],[],[],[],null,["# Load data from Cloud Storage to BigQuery using a workflow\n\nRuns a series of steps to orchestrate loading and then transforming data in BigQuery by calling Cloud Functions.\n\nExplore further\n---------------\n\n\nFor detailed documentation that includes this code sample, see the following:\n\n- [Load data from Cloud Storage to BigQuery using Workflows](/workflows/docs/tutorials/load-data-from-cloud-storage-to-bigquery-using-workflows)\n\nCode sample\n-----------\n\n### YAML\n\n main:\n steps:\n - constants:\n assign:\n - create_job_url: CREATE_JOB_URL\n - poll_job_url: POLL_BIGQUERY_JOB_URL\n - run_job_url: RUN_BIGQUERY_JOB_URL\n - create_query_url: CREATE_QUERY_URL\n - region: BQ_REGION\n - table_name: BQ_DATASET_TABLE_NAME\n next: createJob\n\n - createJob:\n call: http.get\n args:\n url: ${create_job_url}\n auth:\n type: OIDC\n query:\n region: ${region}\n table_name: ${table_name}\n result: job\n next: setJobId\n\n - setJobId:\n assign:\n - job_id: ${job.body.job_id}\n next: jobCreateCheck\n\n - jobCreateCheck:\n switch:\n - condition: ${job_id == Null}\n next: noOpJob\n next: runLoadJob\n\n - runLoadJob:\n call: runBigQueryJob\n args:\n job_id: ${job_id}\n run_job_url: ${run_job_url}\n poll_job_url: ${poll_job_url}\n result: jobStatus\n next: loadRunCheck\n\n - loadRunCheck:\n switch:\n - condition: ${jobStatus == 2}\n next: createQueryJob\n next: failedLoadJob\n\n - createQueryJob:\n call: http.get\n args:\n url: ${create_query_url}\n query:\n qs: \"select count(*) from serverless_elt_dataset.word_count\"\n region: \"US\"\n auth:\n type: OIDC\n result: queryjob\n next: setQueryJobId\n\n - setQueryJobId:\n assign:\n - qid: ${queryjob.body.job_id}\n next: queryCreateCheck\n\n - queryCreateCheck:\n switch:\n - condition: ${qid == Null}\n next: failedQueryJob\n next: runQueryJob\n\n - runQueryJob:\n call: runBigQueryJob\n args:\n job_id: ${qid}\n run_job_url: ${run_job_url}\n poll_job_url: ${poll_job_url}\n result: queryJobState\n next: runQueryCheck\n\n - runQueryCheck:\n switch:\n - condition: ${queryJobState == 2}\n next: allDone\n next: failedQueryJob\n\n - noOpJob:\n return: \"No files to import\"\n next: end\n\n - allDone:\n return: \"All done!\"\n next: end\n\n - failedQueryJob:\n return: \"Query job failed\"\n next: end\n\n - failedLoadJob:\n return: \"Load job failed\"\n next: end\n\n\n runBigQueryJob:\n params: [job_id, run_job_url, poll_job_url]\n steps:\n - startBigQueryJob:\n try:\n call: http.get\n args:\n url: ${run_job_url}\n query:\n job_id: ${job_id}\n auth:\n type: OIDC\n timeout: 600\n result: submitJobState\n retry: ${http.default_retry}\n next: validateSubmit\n\n - validateSubmit:\n switch:\n - condition: ${submitJobState.body.status == 1}\n next: sleepAndPollLoad\n next: returnState\n\n - returnState:\n return: ${submitJobState.body.status}\n\n - sleepAndPollLoad:\n call: sys.sleep\n args:\n seconds: 5\n next: pollJob\n\n - pollJob:\n try:\n call: http.get\n args:\n url: ${poll_job_url}\n query:\n job_id: ${job_id}\n auth:\n type: OIDC\n timeout: 600\n result: pollJobState\n retry:\n predicate: ${http.default_retry_predicate}\n max_retries: 10\n backoff:\n initial_delay: 1\n max_delay: 60\n multiplier: 2\n next: stateCheck\n\n - stateCheck:\n switch:\n - condition: ${pollJobState.body.status == 2}\n return: ${pollJobState.body.status}\n - condition: ${pollJobState.body.status == 3}\n return: ${pollJobState.body.status}\n next: sleepAndPollLoad\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=workflows)."]]