반응형

GCP 114

Apps Script로 공공데이터 포털 openAPI 데이터를 매일 Telegram으로 받기

매일 주택청약 확인을 위해 홈페이지를 들어갔다. https://www.applyhome.co.kr/ai/aib/selectSubscrptCalenderView.do#a 매일 홈페이지를 들어가지 않고, 공공데이터 포털에서 제공하는 데이터를 Telegram 메세지로 받아보도록 해봤다. 1. telegram bot 설정하기 BotFather 을 검색하고 인증되어 있는 BotFather을 선택한다. /start 를 입력하고, /newbot 으로 bot을 생성한다. 생성할 bot 이름을 입력한다. 입력하면 토큰을 발 받을 수 있다. getUpdates url 을 호출하면 빈값을 반환한다. https://api.telegram.org/bot${token}/getUpdates {"ok":true,"result":[{..

GCP/Apps Script 2022.12.29

Apps Script로 MSSQL 데이터를 분단위 trigger로 sync 유지하기

mssql 의 데이터를 가져와 Google Sheets에 데이터를 뿌려 줘 본다. 해당 Google Sheets의 데이터들의 내용을 주기적으로 MSSQL 데이터와 sync를 맟추고 싶다. 이를 해결하기 위해, Apps Script에서 제공하는 Trigger 중 Time-driven 을 이용한다. 일단 MSSQL의 데이터를 해당 sheet에 뿌려준다. const address = 'mssql ip address'; const port = 'mssql port'; const user = 'mssql user'; const userPwd = 'mssql password'; const db = 'mssql database'; const dbUrl = `jdbc:sqlserver://${address}:${por..

GCP/Apps Script 2022.12.27

관리용 Apps Script로 여러개의 Google Sheets 템플릿 관리하기

아래와 같이 동일한 템플릿의 여러 Google Sheets 파일들을 관리해야 할 경우가 발생할 수 있을것이다. 영업팀의 경우, 서울 영업팀, 부산 영업팀의 Google Sheets들이 따로따로 존재할 것이고, 서울, 부산의 sheet 템플릿에 동일한 수정이 필요할 경우가 생길것이다. 연락처라는 항목 뒤에 다른 항목을 추가하려고 한다. 10개의 사업소일 경우, 모든 사업소의 파일을 열어 수정해주어야 할것이다. Google Sheets들의 URL 들을 가지고, 모든 sheet의 항목을 한번에 추가 할 수있다. 먼저 파일들의 url들을 변수로 선언해주고, 변수들을 배열에 담아, loop를 돌아주면서 주어진 셀에 모두 같은 값과 서식을 지정해주는 방식으로 구현하면 모든파일을 다 수정할필요 없이, Apps Scr..

GCP/Apps Script 2022.12.21

JAVA 프로젝트로 GCP BigQuery의 Bulk INSERT(Streaming buffer) 테이블 truncate 이슈

이 프로세스로 API를 가져와 BigQuery에 데이터를 저장하는 프로그램 개발한다. 테스트 중 InsertAll 로 저장한 테이블이 마음대로 컨트롤되지 않는다. 구글링해보니, InsertAll로 저장한 데이터는 일정시간동안 삭제할수 없다. BigQuery: 404 "Table is truncated." when insert right after truncate BigQuery: 404 "Table is truncated." when insert right after truncate I truncate my table by executing a queryJob described here: https://cloud.google.com/bigquery/docs/quickstarts/quickstart-cli..

GCP 2022.11.14

JAVA 프로젝트로 GCP BigQuery의 데이터 조작하기(Insert / Update)

GCP BigQuery에 쿼리문을 통해 데이터를 INSERT/UPDATE 한다. void contextLoads() throws Exception { System.out.println("############### start ###############"); String projectId = "projectId "; String datasetName = "datasetName "; String tableName = "tableName "; String bgDateTimeNow = ZonedDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + "T" + ZonedDateTime.now().format(DateTimeFormatter.ofPa..

GCP 2022.11.04

JAVA 프로젝트로 GCP BigQuery의 데이터 조회하기

솔직히 지금 로직에 Select 는 필요없는데, 차근차근 테스트를 하기위해 Select를 만들어본다. 아마 Insert 후 rowcount 조회용도로 사용할듯. 호출부에서 projecid, datasetname, tablename 과 select query 문을 지정하고 void contextLoads() throws Exception { System.out.println("############### start ###############"); String projectId = "projectId "; String datasetName = "datasetName "; String tableName = "tableName "; // Select String selectQueryString = "SELEC..

GCP 2022.10.31

JAVA 프로젝트로 GCP BigQuery의 Dataset 가져오기

새로운 프로젝트가 생겼다. JAVA 프로젝트에서 BigQuery 의 데이터를 저장하는 프로젝트다. JAVA... 몇년만인지 프로젝트를 세팅하고, 테스트를 진해한다. 일단 GCP의 Service Account json 파일을 이용해, 인증을 진행한다. /** * 구글 Service Account json파일을 통한 BigQuery 생성 * @param projectId * @return {BigQuery} */ public static BigQuery getBigQuery(String projectId) throws Exception, IOException { try { File credentialsPath; // 운영 if (projectId == "operation") { credentialsPath ..

GCP/BigQuery on GCP 2022.10.28

Cloud Function으로 SAP OData 를 BigQuery에 적재하기

https://whiseung.tistory.com/m/entry/Cloud-Data-FusionCDF%EB%A1%9C-SAP-OData-%EB%A5%BC-BigQuery%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%A0%EB%95%8C-%EB%B2%8C%EC%96%B4%EC%A7%80%EB%8A%94-%EC%9D%B4%EC%8A%88 Cloud Data Fusion(CDF)으로 SAP OData 를 BigQuery에 저장할 때 벌어진 이슈 SAP 의 데이터를 OData를 이용해 BIgQuery에 저장하려고 한다. GCP 의 Data Fusion을 이용해 데이터를 적재한다. 데이터가 적은 경우는 괜찮았지만, 1만건 이상의 데이터를 조회할 때마다 데이터가 다르게 whiseung.tistor..

GCP 2022.10.17

Cloud Data Fusion(CDF)으로 SAP OData 를 BigQuery에 저장할 때 벌어진 이슈

SAP 의 데이터를 OData를 이용해 BIgQuery에 저장하려고 한다. GCP 의 Data Fusion을 이용해 데이터를 적재한다. 데이터가 적은 경우는 괜찮았지만, 1만건 이상의 데이터를 조회할 때마다 데이터가 다르게 나온다. 돌릴때 마다 전체 row count는 동일하나, 데이터가 중복되거나 누락되는 케이스가 보인다. Data Fusion으로 Job실행 할 때마다, 가져오는 데이터가 다르다. (3차수의 데이터만 정상이다.) CDF 팀에 문의해보니 아래와 같은 답변이 왔다. The Cloud Data Fusion (CDF) Odata plugin uses these OData Service query options internally to partition the data (data is split..

GCP 2022.10.14
반응형