Google BigQuery
Google BigQuery 데이터 파이프라인이나 복제 작업에서 대상 데이터 플랫폼으로 사용됩니다. 데이터 파이프라인에서는 데이터 저장, 데이터 변환, 데이터 마트 만들기, 데이터 등록 등 다양한 ELT 작업을 대상 플랫폼에서 수행할 수 있습니다. 반면 복제 작업에는 기본 변환 기능을 사용하여 소스 시스템에서 대상 시스템으로 직접 데이터를 복제하는 작업이 포함되지만 ELT 작업은 지원되지 않습니다.를 사용할 수 있습니다.
Google BigQuery을 대상으로 설정하려면 다음이 필요합니다.
- 전제 조건 충족
- Google BigQuery에 대한 연결 구성
Google BigQuery에 대한 연결 구성
커넥터를 구성하려면 다음을 수행합니다.
-
연결에서 연결 만들기를 클릭합니다.
-
Google BigQuery 대상 커넥터를 선택한 후 다음 설정을 제공합니다.
데이터 대상
데이터 게이트웨이
데이터 이동 게이트웨이는 대상 데이터베이스가 Qlik Cloud에서 액세스할 수 없고 비공개 링크를 통해서만 액세스할 수 있는 경우에만 필요합니다(예를 들어, 또는 Virtual Private Cloud에 있는 경우). 이 경우 대상 데이터베이스에 액세스하려는 데이터 이동 게이트웨이를 선택합니다.
사용 사례에 따라 이는 데이터 소스에서 데이터를 배포하기 위해 동일하거나 다른 데이터 이동 게이트웨이가 배포되어 있습니다.
데이터 이동 게이트웨이 사용 사례에 대한 자세한 내용은 데이터 이동 게이트웨이는 언제 필요합니까? 및 일반적인 사용 사례를 참조하십시오.
Qlik Cloud에서 대상 데이터베이스에 직접 액세스할 수 있는 경우 없음을 선택합니다.
연결 속성
서비스 계정 키: BigQuery 서비스 계정 키를 만들 때 다운로드한 JSON 파일을 업로드합니다.
위치: Qlik에서 만들어진 데이터 집합을 업로드할 위치입니다. 기타를 선택한 경우 지역 이름 필드에 지역 이름을 입력합니다. 지원되는 지역 이름 목록은 BigQuery 위치를 참조하십시오.
이름
연결의 표시 이름입니다.
전제 조건
랜딩 데이터에 필요한 권한
대상 데이터 집합을 자동으로 만드는 데 필요한 권한:
데이터 집합이 자동으로 만들어지도록 하려면 다음 권한이 필요합니다.
BigQuery > BigQuery 작업 사용자
BigQuery > BigQuery 데이터 편집자
대상 데이터 집합이 이미 존재하는 경우 필요한 권한:
데이터 집합이 이미 있는 경우 다음 단계를 수행해야 합니다.
-
다음 권한이 있는 서비스 계정을 만듭니다.
BigQuery > BigQuery 작업 사용자
-
사용하려는 데이터 집합으로 이동한 후 다음을 수행합니다.
-
방금 만든 서비스 계정을 보안 주체로 추가합니다.
-
BigQuery 데이터 편집자 역할을 할당합니다.
-
드라이버 설정
드라이버는 데이터 이동 게이트웨이를 통해 데이터베이스에 액세스하는 경우에만 필요합니다. 이러한 경우에는 데이터 이동 게이트웨이 컴퓨터에 드라이버를 설치해야 합니다.
드라이버 설치 유틸리티(권장)를 사용하거나 수동으로 driver를 설치할 수 있습니다. 수동 설치는 드라이버 설치 유틸리티에 문제가 발생하는 드문 경우에만 시도해야 합니다.
드라이버 설치 유틸리티를 사용하여 드라이버 설치
이 섹션에서는 필수 driver를 설치하는 방법에 대해 설명합니다. 이 프로세스에는 필수 driver를 자동으로 다운로드, 설치 및 구성하는 스크립트 실행이 포함됩니다. 필요에 따라 스크립트를 실행하여 driver를 업데이트하고 제거할 수도 있습니다.
설치 준비
-
Python 3.6 이상이 데이터 이동 게이트웨이 서버에 설치되어 있는지 확인합니다.
Python은 대부분의 Linux 배포에 사전 설치되어 있습니다. 다음 명령을 실행하여 시스템에 설치된 Python 버전을 확인할 수 있습니다.
python3 --version
driver 설치
driver를 다운로드하고 설치하려면:
-
데이터 이동 게이트웨이 서비스 중지:
sudo systemctl stop repagent
-
선택적으로 서비스가 중지되었는지 확인합니다.
sudo systemctl status repagent
상태는 다음과 같아야 합니다.
Active: inactive (dead) since <timestamp> ago
-
데이터 이동 게이트웨이 컴퓨터에서 작업 디렉터리를 다음으로 변경합니다.
opt/qlik/gateway/movement/drivers/bin
-
다음 명령을 실행합니다.
구문:
./install gbq
driver를 다운로드할 수 없는 경우(액세스 제한 또는 기술 문제로 인해) driver를 다운로드할 위치와 데이터 이동 게이트웨이 컴퓨터에서 복사할 위치를 알려 주는 메시지가 표시됩니다. 완료했으면 install gbq 명령을 다시 실행합니다.
그렇지 않으면 driver에 대한 EULA가 표시됩니다.
-
다음 중 하나를 수행합니다.
- [Enter] 키를 반복해서 눌러 EULA를 천천히 스크롤합니다.
- 스페이스바를 반복해서 눌러 EULA를 빠르게 스크롤합니다.
- q를 눌러 라이센스 텍스트를 종료하고 EULA 동의 옵션이 표시됩니다.
-
다음 중 하나를 수행합니다.
- "y"를 입력하고 [Enter]를 눌러 EULA에 동의하고 설치를 시작합니다.
- "n"을 입력하고 [Enter] 키를 눌러 EULA를 거부하고 설치를 종료합니다.
-
"v"를 입력하고 [Enter] 키를 눌러 EULA를 다시 봅니다.
-
설치가 완료될 때까지 기다린 다음("완료!"로 표시됨) 데이터 이동 게이트웨이 서비스를 시작합니다.
sudo systemctl start repagent
-
선택적으로 서비스가 시작되었는지 확인합니다.
sudo systemctl status repagent
상태는 다음과 같아야 합니다.
Active: active (running) since <timestamp> ago
driver가 설치됩니다.
driver 업데이트
제공된 driver를 설치하기 전에 driver의 이전 버전을 제거하려면 업데이트 명령을 실행합니다.
driver를 다운로드하고 업데이트하려면:
-
데이터 이동 게이트웨이 서비스 중지:
sudo systemctl stop repagent
-
선택적으로 서비스가 중지되었는지 확인합니다.
sudo systemctl status repagent
상태는 다음과 같아야 합니다.
Active: inactive (dead) since <timestamp> ago
-
데이터 이동 게이트웨이 컴퓨터에서 작업 디렉터리를 다음으로 변경합니다.
opt/qlik/gateway/movement/drivers/bin
-
다음 명령을 실행합니다.
구문:
./update gbq
driver를 다운로드할 수 없는 경우(액세스 제한 또는 기술 문제로 인해) driver를 다운로드할 위치와 데이터 이동 게이트웨이 컴퓨터에서 복사할 위치를 알려 주는 메시지가 표시됩니다. 완료했으면 update gbq 명령을 다시 실행합니다.
그렇지 않으면 driver에 대한 EULA가 표시됩니다.
-
다음 중 하나를 수행합니다.
- [Enter] 키를 반복해서 눌러 EULA를 천천히 스크롤합니다.
- 스페이스바를 반복해서 눌러 EULA를 빠르게 스크롤합니다.
- q를 눌러 라이센스 텍스트를 종료하고 EULA 동의 옵션이 표시됩니다.
-
다음 중 하나를 수행합니다.
- "y"를 입력하고 [Enter]를 눌러 EULA에 동의하고 설치를 시작합니다.
- "n"을 입력하고 [Enter] 키를 눌러 EULA를 거부하고 설치를 종료합니다.
- "v"를 입력하고 [Enter] 키를 눌러 EULA를 처음부터 검토합니다.
-
설치가 완료될 때까지 기다린 다음("완료!"로 표시됨) 데이터 이동 게이트웨이 서비스를 시작합니다.
sudo systemctl start repagent
-
선택적으로 서비스가 시작되었는지 확인합니다.
sudo systemctl status repagent
상태는 다음과 같아야 합니다.
Active: active (running) since <timestamp> ago
이전 driver가 제거되고 새 driver가 설치됩니다.
driver 제거
driver를 제거하려면 제거 명령을 실행합니다.
driver를 제거하려면:
-
이 커넥터를 사용하도록 구성된 모든 작업을 중지합니다.
-
데이터 이동 게이트웨이 컴퓨터에서 작업 디렉터리를 다음으로 변경합니다.
opt/qlik/gateway/movement/drivers/bin
-
다음 명령을 실행합니다.
구문:
./uninstall gbq
driver이 제거됩니다.
수동으로 드라이버 설치
자동 드라이버 설치가 성공적으로 완료되지 않은 경우에만 수동으로 driver 설치를 시도해야 합니다.
ODBC 드라이버와 JDBC 드라이버를 모두 설치해야 합니다.
ODBC 드라이버 설치
데이터 이동 게이트웨이이 설치된 후 SimbaODBCDriverforGoogleBigQuery_<버전>-Linux.tar.gz 및 google-cloud-sdk-<버전>-linux-x86_64.tar.gz 파일을 다운로드합니다. /opt/qlik/gateway/movement/drivers/manifests/gbq.yaml의 binary-artifacts에서 이러한 파일에 대한 직접 다운로드 링크를 찾을 수 있습니다. 다운로드가 완료되면 파일을 데이터 이동 게이트웨이 컴퓨터에 복사합니다.
-
데이터 이동 게이트웨이 서비스 중지:
sudo systemctl stop repagent
-
선택적으로 서비스가 중지되었는지 확인합니다.
sudo systemctl status repagent
-
추출:
SimbaODBCDriverforGoogleBigQuery_<버전>.tar.gz
->
/opt/SimbaODBCDriverforGoogleBigQuery_<버전>-Linux
-
GoogleBigQueryODBC.did 및 simba.googlebigqueryodbc.ini 파일을 Simba ODBC 드라이버 디렉터리 아래의 lib 디렉터리로 이동합니다.
예:
다음 위치에서 파일 이동:
/opt/SimbaODBCDriverforGoogleBigQuery_<버전>-Linux/setup
->
/opt/SimbaODBCDriverforGoogleBigQuery_<버전>-Linux/SimbaODBCDriverforGoogleBigQuery64_<버전>/lib
-
simba.googlebigqueryodbc.ini 파일을 다음과 같이 편집합니다.
-
ErrorMessagesPath
를 ODBC 메시지가 포함된 XML 파일의 경로로 변경합니다. 기본 위치는 다음과 같습니다.ErrorMessagesPath=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/ErrorMessages
DriverManagerEncoding
을UTF-16
으로 변경합니다.
-
-
데이터 이동 게이트웨이 bin 디렉터리에 있는 site_arep_login.sh 파일에 다음 경로를 추가합니다.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/SimbaODBCDriverforGoogleBigQuery_<버전>-Linux/SimbaODBCDriverforGoogleBigQuery64_<버전>/lib
-
/etc/odbcinst.ini 파일을 편집하고 드라이버 경로(예: 드라이버가 설치된 경로)를 추가합니다.
[ODBC Drivers]
Simba= Installed
Simba ODBC Driver for Google BigQuery = Installed
[Simba ODBC Driver for Google BigQuery]
Description=Simba ODBC Driver for Google BigQuery(64-bit)
Driver=/opt/SimbaODBCDriverforGoogleBigQuery_<version>-Linux/SimbaODBCDriverforGoogleBigQuery64_<version>/lib/libgooglebigqueryodbc_sb64.so
-
google-cloud-sdk-<버전>-linux-x86_64.tar.gz를 설치합니다.
-
데이터 이동 게이트웨이 서비스 시작:
sudo systemctl start repagent
-
선택적으로 서비스가 시작되었는지 확인합니다.
sudo systemctl status repagent
상태는 다음과 같아야 합니다.
Active: active (running) since <timestamp> ago
상태는 다음과 같아야 합니다.
Active: inactive (dead) since <timestamp> ago
JDBC 드라이버 및 해당 종속성 설치
-
/opt/qlik/gateway/movement/drivers/manifests/gbq.yaml의 binary-artifacts 아래에 나열된 다음 ZIP 파일 및 JAR 파일을 다운로드합니다.
- https://repo1.maven.org/maven2/com/google/cloud/google-cloud-bigquery/<버전>/google-cloud-bigquery-<버전>.jar
- https://repo1.maven.org/maven2/com/google/cloud/google-cloud-storage/<버전>/google-cloud-storage-<버전>.jar
- https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery<버전>.zip
JAR 파일을 데이터 이동 게이트웨이 컴퓨터의 다음 폴더에 복사하고 SimbaJDBCDriverforGoogleBigQuery<버전>.zip의 JAR 파일을 동일한 폴더에 추출합니다.
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
서비스 다시 시작에 설명된 명령을 실행하여 데이터 이동 게이트웨이 서비스를 다시 시작합니다.
포트
아웃바운드 통신을 위해 방화벽 포트 443을 열어야 합니다.
데이터 유형
매개 변수화된 데이터 유형 길이는 기본값으로 설정됩니다.
-
STRING: 8192(길이)
-
BYTES: 8192(길이)
-
NUMERIC: 정밀도: 38, 배율: 9
-
BIGDECIMAL: 정밀도: 76, 배율: 38
다음 표는 Qlik Cloud를 사용할 때 지원되는 Google BigQuery 데이터 유형과 Qlik Cloud 데이터 유형의 기본 매핑을 보여 줍니다.
기본 데이터 유형 정보는 보존되며 데이터 집합 보기의 기본 데이터 유형 열에 표시됩니다. 열이 표시되지 않으면 데이터 집합 보기의 열 선택기를 열고 기본 데이터 유형 열을 선택해야 합니다.
Qlik Cloud 데이터 유형 | Google BigQuery 데이터 유형 |
---|---|
BOOLEAN |
BOOL |
BYTES |
BYTES(바이트 단위 길이) |
DATE |
DATE |
TIME |
TIME |
DATETIME |
TIMESTAMP |
INT1 |
TINYINT |
INT2 | SMALLINT |
INT4 |
INTEGER |
INT8 | BIGINT |
NUMERIC |
NUMERIC(정밀도, 배율) |
REAL4 |
FLOAT64 |
REAL8 |
FLOAT64 |
UINT1 |
TINYINT |
UINT2 |
SMALLINT |
UINT4 |
INTEGER |
UINT8 |
BIGINT |
STRING |
STRING(바이트 단위 길이) |
WSTRING |
STRING(바이트 단위 길이) |
BLOB |
BYTES |
NCLOB |
STRING |
CLOB |
STRING |
다음 데이터 유형은 STRING으로 변환됩니다.
-
ARRAY
-
STRUCT
-
JSON
-
GEOGRAPHY
자동 드라이버 설치가 성공적으로 완료되지 않은 경우에만 수동으로 driver 설치를 시도해야 합니다.
제한 사항 및 고려 사항
Google BigQuery 대상으로 데이터를 이동할 때 다음과 같은 제한 사항 및 고려 사항이 적용됩니다.
모든 데이터 작업에 적용되는 제한 사항 및 고려 사항
- 다음 DDL은 지원되지 않습니다.
- 열 삭제
- 열 이름 바꾸기
- 열 데이터 유형 변경
- 테이블 이름 바꾸기
기본 키나 고유 인덱스가 없는 소스 테이블의 변경 내용을 캡처하는 것은 지원되지 않습니다. 이러한 테이블에서 변경 사항을 캡처해야 하는 경우 변환을 사용하여 기본 키에 추가할 수 있습니다. 또한, 기본 키나 고유 인덱스 열에는 NULL이 포함될 수 없습니다. 해당 열이 NULL 값으로 채워질 것임을 알고 있는 경우 NULL을 NULL이 허용되지 않는 값으로 변경하기 위한 변환을 정의합니다.
복제 작업에만 적용되는 제한 사항 및 고려 사항
- 트랜잭션 변경 내용 적용 모드가 지원되지 않습니다.
적용 충돌 및 데이터 오류에 대한 예외 테이블에 레코드 로그 오류 처리 옵션은 지원되지 않습니다.
다음 작업 설정 구성을 사용하면 복제 작업은 UPDATE 대신 DELETE 작업을 수행한 다음 INSERT를 수행합니다.
변경 내용 적용 모드가 일괄 최적화로 설정되었습니다.
SQL MERGE를 사용하여 변경 내용 적용 옵션이 선택되지 않았습니다.
적용 충돌 오류 처리 에스컬레이션이 다음으로 설정되었습니다. UPDATE를 적용하기 위한 레코드를 찾을 수 없음: 누락된 대상 레코드 삽입.
Google Cloud BigQuery는 롤백을 지원하지 않으므로 복제 작업에서 업데이트된 행을 삽입할 수 없는 경우 대상에서 데이터가 삭제됩니다.