BigQuery Node.js 클라이언트 라이브러리로 공개 데이터 세트 쿼리

BigQuery Node.js 클라이언트 라이브러리로 공개 데이터 세트 쿼리

학습 내용

  1. Google Cloud 프로젝트에서 Cloud Shell 활성화
  2. Cloud Shell 편집기 열기
  3. 쿼리를 위한 파일 준비
  4. BigQuery에서 공개 데이터 세트 쿼리
  5. 삭제

예상 소요 시간:

시작하려면 시작을 클릭합니다.

Google Cloud 프로젝트에서 Cloud Shell 활성화

  1. 프로젝트에 결제를 사용 설정하지 않으면 자동으로 BigQuery 샌드박스에서 작업합니다. BigQuery 샌드박스를 사용하면 제한된 BigQuery 기능으로 BigQuery를 무료로 학습할 수 있습니다. 이 문서를 벗어나서 프로젝트를 사용할 계획이 없으면 BigQuery 샌드박스를 사용하는 것이 좋습니다.

  2. Cloud Shell 활성화를 클릭합니다. 확인해 보기

Cloud Shell 편집기를 여는 방법을 알아보려면 다음을 클릭하세요.

Cloud Shell 편집기 열기

  1. Cloud Shell에서 새 Node.js 프로젝트 및 파일을 만듭니다.

    mkdir bigquery-node-quickstart \
        && touch \
        bigquery-node-quickstart/app.js
    

    이 명령어는 bigquery-node-quickstart라는 Node.js 프로젝트와 app.js라는 파일을 만듭니다.

  2. Cloud Shell 편집기를 엽니다.

    cloudshell workspace bigquery-node-quickstart
    

쿼리를 위해 파일을 준비하는 방법을 알아보려면 다음을 클릭하세요.

쿼리를 위한 파일 준비

  1. Cloud Shell 편집기에서 터미널을 열려면 터미널 열기를 클릭합니다.

  2. 프로젝트 디렉터리를 엽니다.

    cd bigquery-node-quickstart
    
  3. Node.js용 BigQuery 클라이언트 라이브러리를 설치합니다.

    npm install @google-cloud/bigquery
    

    출력은 다음과 비슷합니다.

    added 63 packages in 2s
    

BigQuery에서 공개 데이터 세트를 쿼리하는 방법을 알아보려면 다음을 클릭하세요.

BigQuery에서 공개 데이터 세트 쿼리

  1. 편집기 열기를 클릭합니다.

  2. 탐색기 창에서 BIGQUERY-NODE-QUICKSTART 프로젝트를 찾습니다.

  3. app.js 파일을 클릭하여 엽니다.

  4. 가장 많이 조회된 Stack Overflow 페이지 10개와 해당 조회 수를 반환하는 bigquery-public-data.stackoverflow 데이터 세트에 대한 쿼리를 만들려면 다음 코드를 app.js 파일에 복사합니다.

    // Import the Google Cloud client library
    const {BigQuery} = require('@google-cloud/bigquery');
    
    async function queryStackOverflow() {
      // Queries a public Stack Overflow dataset.
    
      // Create a client
      const bigqueryClient = new BigQuery();
    
      // The SQL query to run
      const sqlQuery = `SELECT
        CONCAT(
          'https://stackoverflow.com/questions/',
          CAST(id as STRING)) as url,
        view_count
        FROM \`bigquery-public-data.stackoverflow.posts_questions\`
        WHERE tags like '%google-bigquery%'
        ORDER BY view_count DESC
        LIMIT 10`;
    
      const options = {
        query: sqlQuery,
        // Location must match that of the dataset(s) referenced in the query.
        location: 'US',
      };
    
      // Run the query
      const [rows] = await bigqueryClient.query(options);
    
      console.log('Query Results:');
      rows.forEach(row => {
        const url = row['url'];
        const viewCount = row['view_count'];
        console.log(`url: ${url}, ${viewCount} views`);
      });
    }
    queryStackOverflow();

  5. 터미널 열기를 클릭합니다.

  6. 터미널에서 app.js 스크립트를 실행합니다. Cloud Shell을 승인하고 약관에 동의하라는 메시지가 표시되면 승인을 클릭합니다.

    node app.js
    

    결과는 다음과 비슷합니다.

    Query Results:
    url: https://stackoverflow.com/questions/35159967, 170023 views
    url: https://stackoverflow.com/questions/22879669, 142581 views
    url: https://stackoverflow.com/questions/10604135, 132406 views
    url: https://stackoverflow.com/questions/44564887, 128781 views
    url: https://stackoverflow.com/questions/27060396, 127008 views
    url: https://stackoverflow.com/questions/12482637, 120766 views
    url: https://stackoverflow.com/questions/20673986, 115720 views
    url: https://stackoverflow.com/questions/39109817, 108368 views
    url: https://stackoverflow.com/questions/11057219, 105175 views
    url: https://stackoverflow.com/questions/43195143, 101878 views
    

BigQuery Node.js 클라이언트 라이브러리를 사용하여 공개 데이터 세트를 쿼리했습니다.

계정에 요금이 청구되지 않도록 하고 다음 단계에 대해 알아보려면 다음을 클릭하세요.

다음 단계

만든 리소스를 유지한 상태에서 BigQuery로 더 많은 작업을 수행하거나 요금이 청구되지 않도록 삭제합니다.

BigQuery로 더 많은 작업 수행

삭제

Google Cloud 계정에 요금이 청구되지 않도록 하려면 Google Cloud 프로젝트를 삭제하거나 이 둘러보기에서 만든 리소스를 삭제하세요.

프로젝트 삭제

BigQuery 학습용으로 만든 새 프로젝트가 더 이상 필요하지 않으면 프로젝트를 삭제합니다. 프로젝트를 삭제하면 프로젝트의 모든 항목이 삭제되고 커스텀 프로젝트 ID가 손실된다는 점에 유의하세요.

리소스 삭제

기존 프로젝트를 사용한 경우 만든 bigquery-node-quickstart 폴더를 삭제합니다.

  1. Cloud Shell에서 디렉터리를 위로 옮깁니다.

    cd ..
    
  2. 만든 리소스를 삭제합니다.

    rm -R bigquery-node-quickstart
    

    -R 플래그는 폴더의 모든 애셋을 삭제합니다.