최근 로컬 컴퓨터에 mysql 데이터베이스의 데이터를 읽고 Google big 쿼리에 삽입하는 python 코드를 개발했습니다. 인증 서비스 계정을 사용합니다. 목적과 내 코드를 오류없이 성공적으로 실행할 수 있습니다. 이제 도커 파이썬 컨테이너에서 스크립트를 실행하려고합니다. 코드를 실행하면 사용자와 시스템 간의 상호 작용없이 자동으로 처리하는 방법을 잘 모르는 인증 메시지를 받게됩니다.docker를 사용하여 google big query에 데이터를 읽고 쓰는 python 스크립트 처리
메시지는 다음과 같습니다
"이 응용 프로그램에 권한을 부여하기 위해 URL을 방문하십시오 https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=4xxxxxxxk0tmvj2m941jhre2nbqka17vqxxfxxx.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%xxxxxxxb&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbigquery&state=kszePnO3tOxxxxxx&prompt=consent&access_type=offline 이 인증 코드를 입력 : 역 추적 (가장 최근의 호출 마지막) : ... .........
는 EOFError : EOF 라인을 "
내 파이썬 코드를 읽을 때 :
import mysql.connector
import pandas as pd
from oauth2client.client import GoogleCredentials
from bigquery import get_client
import os
import urllib.request
service_account = '[email protected]'
key = 'xxxxxxxxx.p12'
project_id = 'xxxxxxxxx'
db = mysql.connector.connect(user=$user,
password=$password,host=$host,database=$database)
df= pd.read_sql(sql_query,db)
....
client = get_client(project_id, service_account=service_account,
private_key_file=key, readonly=False)
#Push dataframe to google bigquery
df.to_gbq('GoogleBQDatbaseName.TableName',projectid,verbose=True,if_exists='append')
을
스크립트에서이 인증 문제를 자동으로 처리 할 수있는 방법에 대한 제안. 내가 같은 일을 당신에게
바실리 ... 솔루션을 사용해 주셔서 감사합니다. 불행히도, 지금은 충분한 권한이 없기 때문에 서비스 계정에 대한 JSON 파일을 만들 수 없습니다. 나는 단지 내 프로젝트에 p12 파일, 프로젝트 ID 및 서비스 계정 이메일 파일을 가지고 있습니다. 내 로컬 시스템에서 제대로 작동하므로 JSON 파일을 작성하지 않고 도커에서이를 처리 할 수있는 솔루션이 있다고 생각했습니다. 로컬 Mac 컴퓨터. –
json 대신 p12 키 파일을 사용해 볼 수도 있지만 작동 여부는 모르겠습니다. –