데이터베이스 커넥터 배포

Cloud Search 데이터베이스 커넥터를 사용하여 조직의 데이터베이스에서 데이터를 탐색하고 색인을 생성하도록 Google Cloud Search를 설정할 수 있습니다.

중요 고려사항

커넥터가 인터넷과 데이터베이스 모두에 액세스할 수 있는 한, Java 앱을 실행할 수 있는 거의 모든 환경에 Cloud Search 데이터베이스 커넥터를 설치 및 실행할 수 있습니다.

시스템 요구사항

시스템 요구사항
운영체제 Windows 또는 Linux
SQL Database JDBC 4.0 이상을 준수하는 드라이버가 있는 모든 SQL 데이터베이스(다음 포함)
  • MS SQL 서버(2008, 2012, 2014, 2016)
  • Oracle(11g, 12c)
  • Google Cloud SQL
  • MySQL
소프트웨어 JDBC 드라이버 (별도로 다운로드 및 설치)

커넥터 배포

이 단계에서는 커넥터를 설치하고 데이터베이스를 색인화하고 Cloud Search 사용자에게 결과를 반환하도록 구성하는 방법을 설명합니다.

기본 요건

커넥터를 배포하기 전에 다음 정보를 수집하세요.

1단계: 데이터베이스 커넥터 소프트웨어 다운로드 및 빌드

  1. GitHub의 커넥터 저장소를 클론합니다.

    $ git clone https://github.com/google-cloudsearch/database-connector.git
    $ cd database-connector

  2. 선택한 버전을 확인합니다.

    $ git checkout tags/v1-0.0.3

  3. 커넥터를 빌드합니다.

    $ mvn package
    테스트를 건너뛰려면 mvn package -DskipTests를 사용하세요.

  4. 커넥터 zip 파일을 설치 디렉터리에 추출합니다.

    $ cp target/google-cloudsearch-database-connector-v1-0.0.3.zip installation-dir
    $ cd installation-dir
    $ unzip google-cloudsearch-database-connector-v1-0.0.3.zip
    $ cd google-cloudsearch-database-connector-v1-0.0.3

2단계: 데이터베이스 커넥터 구성

  1. connector-config.properties (기본값)라는 텍스트 파일을 만듭니다. Google에서는 .properties 또는 .config 확장 프로그램을 권장합니다. 커넥터와 동일한 디렉터리에 보관합니다.

  2. 매개변수를 키-값 쌍으로 추가합니다. 파일은 데이터 소스 액세스, 데이터베이스 액세스, 전체 순회 SQL 문, 콘텐츠 필드 제목, 열 정의를 지정해야 합니다.

    # Data source access
    api.sourceId=1234567890abcdef
    api.identitySourceId=0987654321lmnopq
    api.serviceAccountPrivateKeyFile=./PrivateKey.json
    
    # Database access
    db.url=jdbc:mysql://localhost:3306/mysql_test
    db.user=root
    db.password=passw0rd
    
    # Full traversal SQL statement
    db.allRecordsSql=select customer_id, first_name, last_name, phone from address_book
    
    # Column definitions and URL format
    db.allColumns=customer_id, first_name, last_name, phone
    db.uniqueKeyColumns=customer_id
    url.columns=customer_id
    
    # Content field
    contentTemplate.db.title=customer_id
    
    # Optional: ACLs
    defaultAcl.mode=fallback
    defaultAcl.public=true
    
    # Optional: traversal schedule
    schedule.traversalIntervalSecs=36000
    schedule.performTraversalOnStart=true
    

    데이터베이스별 매개변수는 구성 매개변수 참조를 참고하세요. 일반 매개변수는 Google 제공 커넥터 매개변수를 참고하세요.

3단계: 데이터베이스 커넥터 실행

명령줄에서 커넥터를 실행합니다.

java
   -cp "google-cloudsearch-database-connector-v1-0.0.3.jar:mysql-connector-java-5.1.41-bin.jar"
   com.google.enterprise.cloudsearch.database.DatabaseFullTraversalConnector
   [-Dconfig=mysql.config]

커넥터는 구성 및 초기화 오류를 보고합니다. 잘못된 SQL 구문과 같은 기타 오류는 커넥터가 처음 데이터베이스에 액세스하려고 할 때 표시됩니다.

구성 매개변수 참조 정보

이 섹션에는 데이터베이스 커넥터 구성 파일에 사용되는 파라미터가 나열되어 있습니다.

데이터 소스 액세스 매개변수

설정 매개변수
데이터 소스 ID api.sourceId = source-ID

필수 항목입니다. Cloud Search 소스 ID입니다.

서비스 계정 api.serviceAccountPrivateKeyFile = path

필수 항목입니다. 서비스 계정 키 파일의 경로입니다.

데이터베이스 액세스 매개변수

설정 매개변수
데이터베이스 URL db.url = database-URL

필수 항목입니다. 전체 경로(예: jdbc:mysql://127.0.0.1/dbname.

사용자 인증 정보 db.user = username
db.password = password

필수 항목입니다. 관련 레코드에 대한 읽기 액세스 권한이 필요합니다.

순회 SQL 쿼리 매개변수

커넥터는 SQL SELECT 쿼리를 사용하여 레코드를 순회합니다.

  • 전체 순회: 구성된 모든 레코드를 읽습니다. 초기 색인 생성 및 주기적 재색인 생성에 필요합니다.
  • 증분 순회: 새로 수정된 레코드만 읽습니다. 데이터베이스에 타임스탬프 필드가 필요합니다.
설정 매개변수
전체 순회 쿼리 db.allRecordsSql = SELECT columns FROM table

필수 항목입니다. 콘텐츠, ID, ACL에 사용되는 모든 열을 포함합니다.

증분 순회 쿼리 db.incrementalUpdateSql = SELECT columns FROM table WHERE update_time > ?

증분 일정에 필요합니다. '?'는 필수 타임스탬프 자리표시자입니다.

열 정의 매개변수

설정 매개변수
모든 열 db.allColumns = column-1, column-2, ...

필수 항목입니다. SQL 쿼리에서 참조되는 모든 열을 나열합니다.

고유 키 열 db.uniqueKeyColumns = column-1

필수 항목입니다. 각 레코드의 고유 ID를 정의합니다.

URL 링크 열 url.columns = column-1

필수 항목입니다. 클릭 가능한 검색 결과에 사용되는 열을 지정합니다.

콘텐츠 필드

설정 매개변수
제목 열 contentTemplate.db.title = column-name

필수 항목입니다. 검색 색인 생성의 최우선순위입니다.

우선순위 지정 contentTemplate.db.quality.high = column-1

열을 높음, 중간 또는 낮음 품질로 지정합니다.