반응형

GCP 108

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

Apps Script로 Google Sheets에서 보고서 양식의 조회저장 기능 구현

요구사항으로 Google Sheets 를 통해 보고서 형식의 조회/입력 양식 개발건이 들어왔다. 조회는 원래 문서번호에 dropdown을 생성하여 변경 시 조회하도록 구성하였으나, Trigger의 속도가 느려, 문서 번호를 Sidebar에서 선택하는 방식으로 수정하였다. 조회 시 : BigQuery에서 데이터를 select 한 후 각각의 셀에 값 할당. 저장 시 : 조회할 영역별로 데이터를 저장. // 미팅목적 const meetingInfo = sheet.getRange("E13:BY15").getValues(); insert query문을 string으로 생성하여 저장하도록 구한함 // 미팅목적 for (i in meetingInfo) { valueText += meetingInfo[i][0] + '..

GCP/Apps Script 2022.10.11

Apps Script로 JDBC를 이용해 Oracle 데이터 가져오기

Apps Script에서 JDBC를 이용해 Oracle 에 접근해 데이터를 가져와 본다. jdbc만 변경하면 mysql, mssql 등도 접근이 가능하다.` // Replace the variables in this block with real values. const address = 'ip'; const port = 'port'; const user = 'user'; const userPwd = 'password'; const db = 'db'; // Read up to 1000 rows of data from the table and log them. function readFromTable() { const dbUrl = `jdbc:oracle:thin:@${address}:${port}:${db..

GCP/Apps Script 2022.09.19

Apps Script로 간단한 웹페이지 배포하기

Apps Script로 간단한 웹페이지를 생성 할 수 있다. 이 웹페이지에서 Bigquery, Database, Google sheets로 데이터를 입력(입력)할 수 있다. Simple Trigger인 doGet()를 이용한다. function doGet(e) { return HtmlService.createTemplateFromFile("form").evaluate() .setTitle("WebApp Form Toggle-Show-Hide Password") .addMetaTag('viewport', 'width=device-width, initial-scale=1') .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); } 위 코드는 별도의 ..

GCP/Apps Script 2022.09.19

Apps Script로 Google Sheets에서 Date 정보 가공하기

Google Sheets에서 날짜에 대한 정보를 가져오길 원한다. =IF(ISBLANK(A4), "", YEAR(A4)&" 년") =IF(ISBLANK(A4), "", MONTH(A4)&" 월") =IF(ISBLANK(A4), "", DAY(A4)&" 일") =IF(ISBLANK(A4), "", WEEKNUM(A4)&" 주차") =IF(ISBLANK(A4), "", TEXT(WEEKDAY(A4), "ddd")) 만약 BigQuery에서 데이터를 가져와서, 수식을 할당하려면? const sheet = SpreadsheetApp.openByUrl(sheetUrl).getSheetByName(sheetName); const sheet_lastrow = sheet.getLastRow(); // 월 수식 할당 c..

GCP/Apps Script 2022.09.16

BigQuery Data Transfer Service 샘플 코드

데이터 세트 복사 | BigQuery Data Transfer Service | Google Cloud 데이터 세트 복사 | BigQuery Data Transfer Service | Google Cloud 전송 구성을 만들어 프로젝트, 위치 또는 둘 다에서 데이터 세트의 모든 테이블을 복사합니다. cloud.google.com Google Docs에서 제공하는 기본 코드는 아래와 같다. 진짜 말그대로 테스트용. from google.cloud import bigquery_datatransfer transfer_client = bigquery_datatransfer.DataTransferServiceClient() destination_project_id = "my-destination-project" ..

GCP/BigQuery on GCP 2022.09.07

Apps Script로 Google Sheets의 마스터성 데이터 관리하기

Google Sheets 는 공동 작업 툴이다. 서로 다른 부서(팀)의 파일에는 작업 권한이 없어야 한다. 하지만 부서(팀) 내에서 공통으로 사용하는 마스터성의 데이터들은 존재할 것이다. (예들 들면 드롭다운 구성) 만약 마스터 데이터의 수정이 일어나면 모든 부서(팀)의 Google Sheets를 열어 수정할 수는 없다. 그래서 공통으로 관리하는 sheet를 참조하여 작업을 진행한다. 물론 DB에 접근해서 가져오는 방법도 있지만, 쿼리를 통해 DB를 수정해야 하거나, 수정할 수 있는 페이지를 별도로 만들어야 할 것이다. 각각 영업팀에서 Master 시트의 데이터를 참조하는 방법은 아래와 같다. Google Sheets에서 제공하는 “IMPORTRANGE” 함수를 사용한다. =IMPORTRANGE(참조할_..

GCP/Apps Script 2022.09.07
반응형