목록GCP (14)
우노
에러 코드BigQuery Table에서 특정 레코드를 DELETE하려했지만, 아래 에러가 발생했습니다. UPDATE or DELETE statement over table '' would affect rows in the streaming buffer, which is not supported에러 발생 원인BigQuery는 데이터를 테이블에 영구적으로 저장하기 전에 스트리밍 버퍼(streaming buffer)라는 메모리 기반 저장소에 임시로 저장합니다.높은 데이터 수신 속도를 제공하기 위함입니다.에러 메시지는 UPDATE 또는 DELETE 문이 스트리밍 버퍼에 있는 행을 수정하려 했기 때문에 발생한 에러입니다.스트리밍 버퍼에 있는 데이터는 아직 테이블에 완전히 반영되지 않았기 때문에 이러한 행에 대해..
들어가기 앞서, 해당 포스팅에선 Google Cloud의 BigQuery Python 클라이언트 라이브러리를 사용하여 BigQuery에 파티션된 테이블을 생성하는 코드에 대해서 다뤄보겠습니다. 예제 코드 # Google Cloud의 BigQuery 클라이언트 라이브러리를 가져옵니다. from google.cloud import bigquery # 사용할 BigQuery 프로젝트의 ID를 설정합니다. project_id = "your_project_id" # BigQuery 클라이언트 객체를 생성합니다. bigquery_client = bigquery.Client(project=project_id) # 생성할 BigQuery 테이블의 스키마를 정의합니다. schema = [ bigquery.SchemaFi..
들어가기 앞서, 해당 포스팅에선 Google Cloud Storage(GCS)에서 CSV 파일을 읽어서 Google BigQuery에 데이터를 저장하는 코드에 대해서 다뤄보겠습니다. 예제 코드 # 필요한 라이브러리를 불러옵니다. from google.cloud import storage, bigquery import pandas as pd from io import StringIO # Google Cloud Storage(GCS) 설정 bucket_name = 'your_bucket_name' # GCS 버킷 이름 prefix = 'your_file_prefix' # 파일 경로 및 이름의 공통된 시작 부분 gcs_client = storage.Client() # GCS 클라이..
들어가기 앞서, 해당 포스팅에선 GCP Pub/Sub Topic에 Message를 Publish하는 간단한 예제 코드를 다뤄보겠습니다. 테스트를 위한 간단한 코드이기 때문에, 필요에 따라 수정해서 사용하시면 됩니다 ㅎㅎ.. 예제 코드 from google.cloud import pubsub_v1 import json # 프로젝트 ID 및 서비스 계정 키 파일 경로 설정 project_id = "your-project-id" key_file_path = "path/to/your/service-account-file.json" # Pub/Sub 클라이언트 초기화 pubsub_client = pubsub_v1.PublisherClient.from_service_account_file(key_file_path)..
에러 코드 generic::permission_denied: user does not have impersonation permission on the trigger service account specified: 문제 상황 특정 사용자가 Cloud Build에 할당되어 있는 Service Account를 대신해 수동 실행할 수 있는 권한이 없어서 에러가 발생하는 상황입니다. 해결 방법 사용자 계정에 아래 역할을 할당하면 됩니다. “roles/iam.serviceAccountUser” 해당 역할은 “iam.serviceAccounts.actAs” 권한을 포함하고 있으며, “iam.serviceAccounts.actAs” 권한은 사용자가 다른 사용자 계정처럼 다른 역할을 수행할 수 있도록 허용하는 권한입니다.
들어가기 앞서, “gcloud auth login”과 “gcloud auth application-default login”은 Google Cloud SDK의 두 가지 다른 인증 방법을 설정하는 명령어입니다. 해당 포스팅에선 각각의 사용 목적에 대해서 다뤄보겠습니다. gcloud auth login 직접 GCP 리소스와 상호작용할 때 사용하는 명령어입니다. 리소스 직접 액세스, Google Cloud SDK를 통한 GCP API 호출 등 gcloud auth application-default login 로컬 개발 환경에서 애플리케이션과 Google Cloud 서비스가 상호작용할 때 사용하는 명령어입니다. 동작 해당 명령어를 실행하면 브라우저 창이 열리고 Google 로그인 페이지로 리디렉션됩니다. 여기..
발생 에러 HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"pods is forbidden: User "system:serviceaccount:composer-1-20-8-airflow-2-4-3-c5d909a1:default" cannot list resource "pods" in API group "" in the namespace "composer-1-20-8-airflow-2-4-3-c5d909a1"","reason":"Forbidden","details":{"kind":"pods"},"code":403} 원인 및 해결 방법 Airflow Pod에서 다른 Pod를 생성하..
들어가기 앞서, 해당 포스팅에선 gcloud 명령어를 사용해 Composer의 파이썬 패키지를 업데이트하는 방법에 대해서 다뤄보겠습니다. 예제 코드 # 작업할 GCP 프로젝트 설정 gcloud config configurations activate "설정해놓은 GCP 프로젝트 Config 이름" # Composer 파이썬 패키지 업데이트 gcloud composer environments \ update "" \ --update-pypi-packages-from-file "" \ --location "" update “” Composer의 이름을 지정합니다. --update-pypi-packages-from-file “” 업데이트할 파이썬 패키지 목록이 적힌 소스(ex. requirements.txt) ..
들어가기 앞서, 해당 포스팅에선 gcloud 명령어를 사용해 Composer의 DAG 파일을 업데이트하는 방법에 대해서 다뤄보겠습니다. 예제 코드 # 작업할 GCP 프로젝트 설정 gcloud config configurations activate "설정해놓은 GCP 프로젝트 Config 이름" # Composer DAG 파일 업데이트 gcloud composer environments storage dags import \ --environment "" \ --location "" \ --source "" \ --destination "" --environment "" Composer의 이름을 지정합니다. --location "" Composer 환경이 위치한 지역을 지정합니다. --source "" 업..
들어가기 앞서, Google Cloud Pub/Sub의 Subscriber는 두 가지 방식으로 메세지를 수신할 수 있습니다. Subscribe (Push) 구독자에게 메세지를 보내는 방식입니다. Pull 구독자가 필요할 때 메시지를 수동으로 가져오는 방식입니다. 어떤 방식을 선택할지는 사용 사례와 요구 사항에 따라 다릅니다. 실시간 데이터 처리가 필요한 경우에는 Subscribe(Push) 방식이 적합하며, 일괄적인 처리나 비동기적인 작업이 가능한 경우에는 Pull 방식이 적합할 수 있습니다. Subscribe 방식 예제 코드 from google.cloud import pubsub_v1 import json def callback(message: pubsub_v1.subscriber.message.Me..