【BigQuery】 기존 테이블 스키마를 새 테이블로 가져오기

2099 단어 BigQuery

사용소


  • 기존 테이블을 변경하고 싶을 때
  • 테이블의 영역을 변경하고 싶을 때

  • BigQuery는 기존의 테이블명의 변경이나 스키마의 변경은 할 수 없고, 새롭게 테이블을 재작성할 필요가 있다.
    그 때에 칼럼수가 많은 테이블이라면 수작업으로 1개씩 스키마를 옮기는 것이 고행이므로, 기존의 테이블의 스키마를 export 해, 새로운 테이블에 임포트 한다.

    전제



  • Google Cloud SDK 설치 로그인이 완료되었습니다.

  • 절차



    【export】 bq 명령으로 기존 테이블의 스키마 표시



    콘솔에서 다음 명령을 실행합니다. (${} 변수는 내보내려는 테이블로 바꿉니다)
    테이블 정보가 표시되므로 "schema"키 아래의 "fields"의 시작부터 끝을 복사합니다.
    ❯ bq --format=prettyjson show ${project_id}:${dataset_name}.${table_name}
    
    {
      "creationTime": "XXXXXXXXXXXXX",
      "etag": "XXXXXXXXXXXXXX",
      "id": "${project_id}:${dataset_name}.${table_name}",
     ︙
      "schema": {
        "fields": [
          {
            "mode": "NULLABLE",
            "name": "hoge",
            "type": "INTEGER"
          },
          {
            "mode": "NULLABLE",
            "name": "fuga",
            "type": "STRING"
          },
          {
            "mode": "NULLABLE",
            "name": "piyo",
            "type": "BOOLEAN"
          }
       ]
    }
    ︙
    

    예상 클립보드 내용
    [
      {
        "mode": "NULLABLE",
        "name": "hoge",
        "type": "INTEGER"
      },
      {
        "mode": "NULLABLE",
        "name": "fuga",
        "type": "STRING"
      },
      {
        "mode": "NULLABLE",
        "name": "piyo",
        "type": "BOOLEAN"
      }
    ]
    

    【import】 웹 콘솔에서 테이블 작성


  • 쿼리 편집기 화면을 열고 테이블을 만들 데이터 세트를 선택 → 테이블 만들기를 클릭합니다.
  • '텍스트로 편집'을 활성화하고 클립보드에 준비된 JSON을 붙여넣기

  • 좋은 웹페이지 즐겨찾기