Firestore 데이터를 gcloud를 사용하여 백업 및 다른 프로젝트로 가져오기

Firestore의 데이터를 흥미롭게보고 싶다면,
다른 프로젝트로 이행할 수 있을 것 같았기 때문에, 여러가지 조사했을 때의 비망록.

분석 목적이지만 BigQuery는 1000 열 제약 조건에서 사용할 수 없었기 때문에 대안입니다 ...
다른 프로젝트라면 무료 테두리로 여러가지 할 것 같다.

여러가지 시도했지만, 안 되었던 경위는 이쪽에 정리했습니다. .
- Firestore 데이터를 분석하는 세 가지 방법과 그 주의 사항 - Qiita

주의



Firestore 내보내기/가져오기에 대한 몇 가지 주의.
  • Firestore 내보내기/가져 오기에는 Blaze 플랜이 필요합니다 (무료 프레임에서는 불가능)
  • 문서를 읽고 쓸 때 Cloud Firestore 요금이 부과됩니다

  • 또한,

    내보내기/가져오기 작업의 비용은 비용 제한을 받지 않습니다.
    작업이 완료될 때까지 내보내기/가져오기에서 GCP 예산 경고가 트리거되지 않습니다.

    그래서, 사용은 계획적으로..

    1. gcloud 설치



    설치
    $ brew cask install google-cloud-sdk
    

    .bashrc 등에 다음을 추가
    source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.bash.inc'
    source '/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.bash.inc'
    

    gcloud 초기화
    # 初期設定の実行
    $ gcloud init
    # このあと、ログイン画面が出てきて認証する
    
    # コンポーネントのアップデート
    $ gcloud components update
    
    # 現在のプロジェクトの確認
    $ gcloud info | grep project
    

    2. Firestore 데이터 내보내기


    firestore export를 사용하면 데이터 백업을 만들 수 있습니다.
    백업 데이터는 GCP의 Storage에 생성되므로,
    미리, Storage를 작성해 둘 필요가 있다.
    # 現在のプロジェクトの確認
    $ gcloud info | grep project
    
    # 全体のエクスポート
    $ gcloud beta firestore export gs://[BUCKET_NAME]
    
    # コレクションを指定して、一部だけをエクスポート
    $ gcloud beta firestore export gs://[BUCKET_NAME] --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2]
    
    # 実行状況の確認
    $ gcloud beta firestore operations list
    

    데이터 양이 많으면 명령이 중간에 종료되므로,
    완료되었는지 여부는 operations list를 실행하여 확인해야합니다.

    참고 : 데이터 내보내기 및 가져오기  |  Firebase

    3. 프로젝트 변경


    # プロジェクトの設定
    $ gcloud config set project [PROJECT]
    
    # 現在の設定情報の確認
    $ gcloud info
    

    참고 : SDK 구성 관리  | Cloud SDK 문서  |  Google Cloud

    4. 계정 변경


    # アカウントの設定
    $ gcloud config set account [ACCOUNT]
    
    # 設定したアカウントの認証
    $ gcloud auth login
    
    # 登録しているアカウントの一覧を確認
    $ gcloud auth list
    
    # プロジェクトの設定
    $ gcloud config set project [PROJECT]
    
    # 現在の設定情報の確認
    $ gcloud info
    

    참고 : Cloud SDK 도구 승인  | Cloud SDK 문서  |  Google Cloud

    5. 백업을 다른 프로젝트로 가져오기



    전체의 흐름은 이런 느낌.
    # バックアップしたいプロジェクトに設定
    $ gcloud config set project [PROJECT]
    
    # 全体のエクスポート
    $ gcloud beta firestore export gs://[BUCKET_NAME]
    
    
    # 別のプロジェクトにプロジェクトに変更
    $ gcloud config set project [PROJECT]
    
    # バックアップファイルのインポート
    $ gcloud beta firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/
    

    주의점
  • 가져오려는 프로젝트의 Firestore는 초기 설정이어야 합니다
  • 실행은 프로젝트의 서비스 계정에서 실행되므로,
    백업 파일 버킷에 권한을 부여해야합니다

  • 참고 : 데이터 내보내기 및 가져오기  |  Firebase

    결론



    유료만이지만,
  • 프로덕션 데이터 분석 또는
  • 프로덕션 데이터를 개발용으로 이용하거나
  • 프로젝트 마이그레이션

  • 뭐든지 사용할 수 있을 것 같다.
    분석은 BigQuery를 사용할 수 있다면 좋을지도?

    이런것을 만들고 있습니다!!



    적독용의 독서 관리 어플리케이션 「적독 하우 매치」를 릴리스했습니다!
    적독 하우 매치은 Nuxt.js+Firebase에서 개발 중입니다!



    괜찮다면 놀아주세요 ヽ (= '▽`=) 노

    요청, 감상, 조언 등이 있다면,
    공식 계정( @MemoryLoverz ) 및 개발자( @kira_puka )까지

    참고로 한 사이트


  • 데이터 내보내기 및 가져오기  |  Firebase
  • Cloud Firestore 백업 복원 - google-cloud-kr - Medium
  • gcloud 계정 변경 및 프로젝트 변경 | yo16 | note
  • 자신의 GCP 명령 참조 - Qiita
  • gcloud의 개인 메모 - Qiita
  • gcloud 명령(GCP)을 사용하여 여러 프로젝트와 계정 사용을 편리하게 - Adways 엔지니어 블로그
  • macos에 gcloud와 kubectl 설치 - Qiita
  • macOS용 빠른 시작  | Cloud SDK 설명서  |  Google Cloud
  • 좋은 웹페이지 즐겨찾기