Cloud SQL 통합 쿼리

이 페이지에서는 통합 쿼리를 사용하여 BigQuery에서 Cloud SQL의 데이터를 쿼리하는 방법을 설명합니다.

개요

BigQuery Cloud SQL 통합을 사용하면 BigQuery에서 Cloud SQL에 위치한 데이터를 실시간으로, 데이터 복사나 이동 없이 쿼리할 수 있습니다. 쿼리 통합은 Cloud SQL에서 MySQL(2세대) 및 PostgreSQL 인스턴스를 모두 지원합니다.

처음 1회 설정 이후 SQL EXTERNAL_QUERY 함수를 사용하여 쿼리를 작성할 수 있습니다.

또는 Cloud Data Fusion 또는 Datastream을 사용하여 데이터를 BigQuery로 복제할 수도 있습니다. Cloud Data Fusion 사용에 대한 자세한 내용은 MySQL에서 BigQuery로 데이터 복제를 참조하세요.

시작하기 전에

BigQuery 연결 서비스 사용 설정

  1. API 라이브러리에서 BigQuery connection API 페이지를 엽니다.
  2. 드롭다운 메뉴에서 외부 데이터 소스가 포함된 프로젝트를 선택합니다.
  3. 사용 설정 버튼을 클릭합니다.

    BigQuery Connection API

공개 IP

BigQuery Cloud SQL 통합은 공개 IP 연결이 있는 Cloud SQL 인스턴스만 지원합니다. Cloud SQL 인스턴스의 공개 IP 연결을 구성하세요.

Cloud SQL 인스턴스를 보호하려면 승인된 주소 없이 공개 IP 연결을 추가하면 됩니다. 이 방법을 사용하면 공개 인터넷에서 인스턴스에 액세스할 수 없지만 BigQuery에서 쿼리할 수 있습니다.

Cloud SQL 데이터베이스 연결 설정

BigQuery Connection API가 사용 설정되면 Cloud SQL 데이터베이스에 대한 연결을 만듭니다.

Console

  1. 연결 리소스를 만들려면 Console에서 BigQuery 페이지로 이동합니다.

    BigQuery 페이지로 이동

  2. 데이터 추가 메뉴에서 외부 데이터 소스를 선택합니다.

  3. 외부 데이터 소스 대화상자에서 다음 정보를 입력합니다.

    • 연결 유형에 대해 MySQL 또는 Postgres와 같은 소스 유형을 선택합니다.
    • 연결 ID에는 연결 리소스의 식별자를 입력합니다. 문자, 숫자, 밑줄을 사용할 수 있습니다. 예를 들면 bq_sql_connection입니다.
    • 데이터 위치에서 외부 데이터 소스 리전과 호환되는 BigQuery 위치(또는 리전)를 선택합니다.
    • 선택사항: 별칭에 사용자 친화적인 연결 이름(예: My connection resource)을 입력합니다. 사용자 친화적인 이름으로 나중에 수정해야 하는 경우 연결 리소스를 식별하는 데 도움이 되는 모든 값을 사용할 수 있습니다.
    • 선택사항: 설명에 이 연결 리소스에 대한 설명을 입력합니다.
    • 연결 유형으로 Cloud SQL MySQL 또는 Postgres를 선택한 경우 Cloud SQL 인스턴스 ID에 대해 Cloud SQL 인스턴스의 전체 이름을 일반적으로 project-id:location-id:instance-id 형식으로 입력합니다. 쿼리하려는 Cloud SQL 인스턴스의 세부정보 페이지에서 인스턴스 ID를 찾을 수 있습니다.
    • 데이터베이스 이름에 데이터베이스 이름을 입력합니다.
    • 데이터베이스 사용자 이름에 데이터베이스의 사용자 이름을 입력합니다.
    • 데이터베이스 비밀번호에 데이터베이스의 비밀번호를 입력합니다.

      • 선택사항: 비밀번호를 보려면 비밀번호 표시를 클릭합니다.
  4. 연결 만들기를 클릭합니다.

bq

bq mk 명령어를 입력하고 연결 플래그 --connection을 지정합니다. 다음 플래그도 필요합니다.

  • --connection_type
  • --properties
  • --connection_credential
  • --project_id
  • --location

다음 플래그는 선택사항입니다.

  • --display_name 연결의 별칭입니다.
  • --description 연결에 대한 설명입니다.

connection_id는 스토리지에 사용되는 명령어의 마지막 인수로 추가할 수 있는 선택적 매개변수입니다. 연결 ID가 제공되지 않으면 고유 ID가 자동으로 생성됩니다. connection_id에는 문자, 숫자, 밑줄이 포함될 수 있습니다.

    bq mk --connection --display_name='friendly name' --connection_type=TYPE \
      --properties=PROPERTIES --connection_credential=CREDENTIALS \
      --project_id=PROJECT_ID --location=LOCATION \
      CONNECTION_ID

다음을 바꿉니다.

  • TYPE: 외부 데이터 소스의 유형입니다.
  • PROPERTIES: JSON 형식의 생성된 연결의 매개변수입니다. 예를 들면 --properties='{"param":"param_value"}'입니다. 연결 리소스 생성에는 instanceID, database, type 매개변수를 지정해야 합니다.
  • CREDENTIALS: 매개변수 usernamepassword입니다.
  • PROJECT_ID: 프로젝트 ID입니다.
  • LOCATION: Cloud SQL 인스턴스가 위치한 리전입니다.
  • CONNECTION_ID: 연결 식별자입니다.

예를 들어 다음 명령어를 실행하면 프로젝트에 ID가 federation-test인 my_new_connection(별칭: "My new connection")이라는 새 연결 리소스가 생성됩니다.

bq mk --connection --display_name='friendly name' --connection_type='CLOUD_SQL' \
  --properties='{"instanceId":"federation-test:us-central1:mytestsql","database":"mydatabase","type":"MYSQL"}' \
  --connection_credential='{"username":"myusername", "password":"mypassword"}' \
  --project_id=federation-test --location=us my_connection_id

API

BigQuery 연결 API 내에서 ConnectionService 내에서 CreateConnection를 호출하여 연결을 인스턴스화할 수 있습니다. 자세한 내용은 클라이언트 라이브러리 페이지를 참조하세요.

자바

이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 자바 설정 안내를 따르세요. 자세한 내용은 BigQuery 자바 API 참조 문서를 확인하세요.

import com.google.cloud.bigquery.connection.v1.CloudSqlCredential;
import com.google.cloud.bigquery.connection.v1.CloudSqlProperties;
import com.google.cloud.bigquery.connection.v1.Connection;
import com.google.cloud.bigquery.connection.v1.CreateConnectionRequest;
import com.google.cloud.bigquery.connection.v1.LocationName;
import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient;
import java.io.IOException;

// Sample to create a connection with cloud MySql database
public class CreateConnection {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    String location = "MY_LOCATION";
    String connectionId = "MY_CONNECTION_ID";
    String database = "MY_DATABASE";
    String instance = "MY_INSTANCE";
    String instanceLocation = "MY_INSTANCE_LOCATION";
    String username = "MY_USERNAME";
    String password = "MY_PASSWORD";
    String instanceId = String.format("%s:%s:%s", projectId, instanceLocation, instance);
    CloudSqlCredential cloudSqlCredential =
        CloudSqlCredential.newBuilder().setUsername(username).setPassword(password).build();
    CloudSqlProperties cloudSqlProperties =
        CloudSqlProperties.newBuilder()
            .setType(CloudSqlProperties.DatabaseType.MYSQL)
            .setDatabase(database)
            .setInstanceId(instanceId)
            .setCredential(cloudSqlCredential)
            .build();
    Connection connection = Connection.newBuilder().setCloudSql(cloudSqlProperties).build();
    createConnection(projectId, location, connectionId, connection);
  }

  public static void createConnection(
      String projectId, String location, String connectionId, Connection connection)
      throws IOException {
    try (ConnectionServiceClient client = ConnectionServiceClient.create()) {
      LocationName parent = LocationName.of(projectId, location);
      CreateConnectionRequest request =
          CreateConnectionRequest.newBuilder()
              .setParent(parent.toString())
              .setConnection(connection)
              .setConnectionId(connectionId)
              .build();
      Connection response = client.createConnection(request);
      System.out.println("Connection created successfully :" + response.getName());
    }
  }
}

연결 리소스 보기, 나열, 공유, 업데이트, 삭제에 대한 상세 설명은 연결 작업을 참조하세요.

서비스 에이전트

서비스 에이전트는 Cloud SQL에 연결할 때 자동으로 생성됩니다. 서비스 에이전트는 이름이 BigQuery Connection Service Agent이고 도메인이 gcp-sa-bigqueryconnection.iam.gserviceaccount.com입니다. 이 서비스 에이전트에는 roles/bigqueryconnection.serviceAgent 역할이 적용되어 있습니다.

예시

고객 테이블은 BigQuery에, 판매 테이블은 Cloud SQL에 저장되어 있는 상황에서 하나의 쿼리로 두 테이블을 조인하려는 경우가 있습니다. 다음 예시에서는 orders라는 Cloud SQL 테이블에 통합 쿼리를 만들고 결과를 mydataset.customers라는 BigQuery 테이블과 조인합니다.

SELECT c.customer_id, c.name, rq.first_order_date
FROM mydataset.customers AS c
LEFT OUTER JOIN EXTERNAL_QUERY(
  'us.connection_id',
  '''SELECT customer_id, MIN(order_date) AS first_order_date
  FROM orders
  GROUP BY customer_id''') AS rq ON rq.customer_id = c.customer_id
GROUP BY c.customer_id, c.name, rq.first_order_date;

예시 쿼리는 다음과 같은 3부분으로 구성됩니다.

  1. 운영 PostgreSQL 데이터베이스에서 외부 쿼리 SELECT customer_id, MIN(order_date) AS first_order_date FROM orders GROUP BY customer_id를 실행하여 EXTERNAL_QUERY() 함수를 통해 각 고객의 첫 주문 날짜를 구합니다.
  2. customer_id를 기준으로 BigQuery에서 외부 쿼리 결과 테이블을 고객 테이블과 조인합니다.
  3. 고객 정보와 첫 주문 날짜를 선택합니다.

지원되는 리전

다음 표에서는 BigQuery 및 Cloud SQL에 지원되는 리전을 보여줍니다.

리전 내 위치

리전 설명 Cloud SQL 리전 호환되는 BigQuery 리전 호환되는 BigQuery 멀티 리전
미주
아이오와 us-central 지원되지 않음: 이 Cloud SQL 인스턴스 리전은 V1입니다.
통합 쿼리는 Cloud SQL의 V2 인스턴스만 지원합니다.
아이오와 us-central1 us-central1 US
라스베이거스 us-west4 us-west4 US
로스앤젤레스 us-west2 us-west2 US
몬트리올 northamerica-northeast1 northamerica-northeast1 US
북 버지니아 us-east4 us-east4 US
오리건 us-west1 us-west1 US
솔트레이크시티 us-west3 us-west3 US
상파울루 southamerica-east1 southamerica-east1
산티아고 southamerica-west1 southamerica-west1
사우스캐롤라이나 us-east1 us-east1 US
토론토 northamerica-northeast2 northamerica-northeast2 US
유럽
벨기에 europe-west1 europe-west1 EU
핀란드 europe-north1 europe-north1 EU
프랑크푸르트 europe-west3 europe-west3 EU
런던 europe-west2 europe-west2 EU
네덜란드 europe-west4 europe-west4 EU
바르샤바 europe-central2 europe-central2 EU
취리히 europe-west6 europe-west6 EU
아시아 태평양
델리 asia-south2 asia-south2
Hong Kong asia-east2 asia-east2
자카르타 asia-southeast2 asia-southeast2
멜버른 australia-southeast2 australia-southeast2
뭄바이 asia-south1 asia-south1
오사카 asia-northeast2 asia-northeast2
서울 asia-northeast3 asia-northeast3
싱가포르 asia-southeast1 asia-southeast1
시드니 australia-southeast1 australia-southeast1
타이완 asia-east1 asia-east1
도쿄 asia-northeast1 asia-northeast1

멀티 리전 위치

Cloud SQL 인스턴스에는 멀티 리전 위치를 사용할 수 없습니다. 통합 쿼리에는 Cloud SQL 멀티 리전을 사용할 수 없습니다.

EU 멀티 리전에 있는 데이터는 europe-west2(런던) 또는 europe-west6(취리히) 데이터 센터에 저장되지 않습니다.

제한사항

Cloud SQL 통합 쿼리에는 다음과 같은 제한사항이 적용됩니다.

  • 성능 통합 쿼리는 BigQuery 스토리지만 쿼리하는 것만큼 빠르지 않을 수 있습니다. BigQuery는 소스 데이터베이스에서 외부 쿼리를 실행할 때까지 기다려야 하며 임시로 외부 데이터 소스에서 BigQuery로 데이터를 이동해야 합니다. 또한 소스 데이터베이스는 복잡한 분석 쿼리에 맞게 최적화되지 않을 수 있습니다.

  • 통합 쿼리는 읽기 전용입니다. 소스 데이터베이스에서 실행되는 외부 쿼리는 읽기 전용이어야 합니다. 따라서 DML 또는 DDL 문은 지원되지 않습니다.

  • 지원되지 않는 데이터 유형 외부 쿼리에 BigQuery에서 지원되지 않는 데이터 유형이 포함되면 쿼리는 즉시 실패합니다. 지원되지 않는 데이터 유형을 지원되는 다른 지원되는 데이터 유형으로 변환할 수 있습니다.

  • 제한된 Cloud SQL 인스턴스 통합 쿼리는 공개 IP(비공개 IP 아님)가 있는 Cloud SQL V2 인스턴스에서만 지원됩니다.

  • Project 유형의 권한입니다. Cloud SQL 인스턴스와 동일한 프로젝트에서 연결 리소스를 만들어야 합니다.

할당량 및 한도

일반적인 통합 쿼리 할당량 및 한도 외에도 Cloud SQL 데이터베이스에는 다음과 같은 제한이 있습니다.

  • 리전 간 통합 쿼리: BigQuery 쿼리 처리 위치와 외부 데이터 소스 위치가 다른 경우에는 리전 간 쿼리입니다. 하루에 프로젝트당 리전 간 쿼리 1 TB를 실행할 수 있습니다. 다음은 리전 간 쿼리의 예시입니다.
    • Cloud SQL 인스턴스는 us-west1에 있지만 BigQuery 연결은 US 멀티 리전을 기반으로 합니다. BigQuery 쿼리 처리 위치는 US입니다.
  • 할당량: 사용자가 외부 데이터 소스에서 Cloud SQL의 쿼리 할당량을 제어해야 합니다. 통합 쿼리에 대한 추가 할당량 설정은 없습니다. 워크로드 격리를 위해서는 데이터베이스 읽기 복제본만 쿼리하는 것이 좋습니다.
  • Cloud SQL MySQLPostgreSQL의 할당량과 한도가 적용됩니다.

참조

Cloud SQL 테이블 스키마 보기

information_schema 테이블을 쿼리하기 위해 EXTERNAL_QUERY() 함수를 사용해 데이터베이스 메타데이터에 액세스하여 데이터베이스의 모든 테이블을 나열하거나 테이블 스키마를 볼 수 있습니다. 다음 예시의 information_schema 쿼리는 MySQL과 PostgreSQL에서 모두 작동합니다. MySQL information_schema 테이블PostgreSQL information_schema 테이블에서 더 자세히 알아볼 수 있습니다.

-- List all tables in a database.
SELECT * FROM EXTERNAL_QUERY("connection_id",
"select * from information_schema.tables;");
-- List all columns in a table.
SELECT * FROM EXTERNAL_QUERY("connection_id",
"select * from information_schema.columns where table_name='x';");

연결 리소스 세부정보

속성 이름 설명
name 문자열 연결 리소스의 이름입니다(형식: project_id.location_id.connection_id).
location 문자열 연결의 위치이며 Cloud SQL 인스턴스 위치와 동일합니다. 단, 예외적으로 Cloud SQL us-central1은 BigQuery US에 매핑되며 Cloud SQL europe-west1은 BigQuery EU에 매핑됩니다.
friendlyName 문자열 연결의 사용자 친화적인 표시 이름입니다.
description 문자열 연결에 대한 설명입니다.
cloudSql.type 문자열 'POSTGRES' 또는 'MYSQL'일 수 있습니다.
cloudSql.instanceId 문자열 Cloud SQL 인스턴스 이름은 주로 다음 형식입니다.

Project-id:location-id:instance-id

Cloud SQL 인스턴스 세부정보 페이지에서 인스턴스 ID를 확인할 수 있습니다.
cloudSql.database 문자열 연결할 Cloud SQL Database입니다.

연결 사용자 인증 정보 리소스 세부정보

속성 이름 설명
username 문자열 데이터베이스 사용자 이름
password 문자열 데이터베이스 비밀번호

데이터 유형 매핑

Cloud SQL 통합 쿼리를 실행할 때 Cloud SQL의 데이터(MySQL 또는 PostgreSQL 데이터 유형)는 BigQuery 표준 SQL 유형으로 변환됩니다. 다음 데이터 유형 매핑은 MySQL에서 BigQuery로, PostgreSQL에서 BigQuery로입니다.

매핑에 대해 알아야 할 사항은 다음과 같습니다.

  • 대부분의 MySQL 데이터 유형은 동일한 BigQuery 데이터 유형과 일치할 수 있습니다.
  • PostgreSQL은 BigQuery에서 지원되지 않는 많은 비표준 데이터 유형(예: money, path, uuid, boxer 등)을 지원합니다.
  • MySQL 및 PostgreSQL의 숫자 데이터 유형은 기본적으로 BigQuery NUMERIC 값에 매핑됩니다. BigQuery NUMERIC 값 범위는 MySQL 및 PostgreSQL보다 작습니다. 또한 EXTERNAL_QUERY 옵션에서 'default_type_for_decimal_columns'BIGNUMERIC, FLOAT64, STRING에 매핑됩니다.

오류 처리

외부 쿼리에 BigQuery에서 지원되지 않는 데이터 유형이 포함되면 쿼리는 즉시 실패합니다. 지원되지 않는 데이터 유형을 지원되는 다른 MySQL / PostgreSQL 데이터 유형으로 변환할 수 있습니다.

지원되지 않는 데이터 유형을 지원되는 다른 MySQL 또는 PostgreSQL 데이터 유형으로 변환할 수 있습니다.

  • 지원되지 않는 MySQL 데이터 유형

    • 오류 메시지: Invalid table-valued function external_query Found unsupported MySQL type in BigQuery at [1:15]
    • 지원되지 않는 유형: GEOMETRY, BIT
    • 해결 방법: 지원되지 않는 데이터 유형을 STRING으로 변환합니다.
    • 예: SELECT ST_AsText(ST_GeomFromText('POINT(1 1)')); 이 명령어는 지원되지 않는 데이터 유형 GEOMETRYSTRING으로 전송합니다.
  • 지원되지 않는 PostgreSQL 데이터 유형

    • 오류 메시지: Invalid table-valued function external_query Postgres type (OID = 790) is not supported now at [1:15]
    • 지원되지 않는 유형: money, time with time zone, inet, path, pg_lsn, point, polygon, tsquery, tsvector, txid_snapshot, uuid, box, cidr, circle, interval, jsonb, line, lseg, macaddr, macaddr8
    • 해결 방법: 지원되지 않는 데이터 유형을 STRING으로 변환합니다.
    • 예: SELECT CAST('12.34'::float8::numeric::money AS varchar(30)); 이 명령어는 지원되지 않는 데이터 유형 moneySTRING으로 전송합니다.

MySQL에서 BigQuery로 유형 매핑

MySQL 유형 MySQL 설명 BigQuery 유형 유형 차이
정수
INT 4바이트, 2^32 - 1 INT64
TINYINT 1바이트, 2^8 - 1 INT64
SMALLINT 2바이트, 2^16 - 1 INT64
MEDIUMINT 3바이트, 2^24 - 1 INT64
BIGINT 8바이트, 2^64 - 1 INT64
UNSIGNED BIGINT 8바이트, 2^64 - 1 NUMERIC
정확한 숫자
DECIMAL(M,D) (M,D)로 표현되는 소수로, 여기서 M은 총 자릿수, D는 소수 자릿수입니다.
M <= 65
NUMERIC, BIGNUMERIC, FLOAT64, STRING

DECIMAL(M,D)은 기본적으로 NUMERIC에 매핑되거나 default_type_for_decimal_columns를 사용하여 BIGNUMERIC, FLOAT64 또는 STRING에 매핑될 수 있습니다.
대략적인 숫자
FLOAT (M,D) 4바이트, M <= 23 FLOAT64
DOUBLE (M,D) 8바이트, M <= 53 FLOAT64
날짜 및 시간
TIMESTAMP '1970-01-01 00:00:01'UTC ~ '2038-01-19 03:14:07' UTC. TIMESTAMP MySQL TIMESTAMP는 BigQuery를 호출하는 위치에 관계없이 UTC 시간대로 검색됩니다.
DATETIME '1000-01-01 00:00:00' ~ '9999-12-31 23:59:59'. DATETIME
DATE '1000-01-01' ~ '9999-12-31'. DATE
TIME 시간은 'HH:MM:SS' 형식으로
'-838:59:59' ~'838:59:59'입니다.
TIME
BigQuery TIME 범위는 더 작은 00:00:00~23:59:59입니다.
YEAR INT64
문자 및 문자열
ENUM 허용된 값 목록에서 선택된 값이 있는 문자열 객체 STRING
CHAR (M) 1~255자 사이의 고정 길이 문자열 STRING
VARCHAR (M) 1~255자 사이의 가변 길이 문자열 STRING
TEXT 최대 길이가 65,535자인 필드 STRING
TINYTEXT 최대 길이가 255자인 TEXT 열 STRING
MEDIUMTEXT 최대 길이가 16,777,215자인 TEXT 열 STRING
LONGTEXT 최대 길이가 4,294,967,295자인 TEXT 열 STRING
바이너리
BLOB 최대 길이가 65,535자인 바이너리 대형 객체 BYTES
MEDIUM_BLOB 최대 길이가 16,777,215자인 BLOB BYTES
LONG_BLOB 최대 길이가 4,294,967,295자인 BLOB BYTES
TINY_BLOB 최대 길이가 255자인 BLOB BYTES
바이너리 1~255자 사이의 고정 길이 바이너리 문자열 BYTES
VARBINARY 1~255자 사이의 가변 길이 바이너리 문자열 BYTES
기타
SET SET 열을 선언할 때 일부 값을 사전 정의합니다. 그런 다음 INSERT를 사용하여 이 열에 사전 정의된 값 집합을 추가합니다. STRING
GEOMETRY GEOGRAPHY 아직 지원되지 않음
BIT INT64 아직 지원되지 않음

PostgreSQL에서 BigQuery로 유형 매핑

이름 설명 BigQuery 유형 유형 차이
정수
smallint 2바이트, -32,768 ~ +32,767. INT64
smallserial smallint 참조 INT64
integer 4바이트, -2,147,483,648 ~ +2,147,483,647. INT64
serial integer 참조 INT64
bigint 8바이트, -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807. INT64
bigserial bigint 참조 INT64
정확한 숫자
numeric [ (p, s) ] 최대 1,000의 정밀도 NUMERIC, BIGNUMERIC, FLOAT64, STRING 숫자 [ (p, s) ]는 기본적으로 NUMERIC에 매핑되거나 default_type_for_decimal_columns를 사용하여 BIGNUMERIC, FLOAT64 또는 STRING에 매핑될 수 있습니다.
decimal [ (p, s) ] numeric 참조 NUMERIC numeric 참조
money 8바이트, 2자릿수 척도, -92,233,720,368,547,758.08 ~ +92,233,720,368,547,758.07 지원되지 않음
대략적인 숫자
real 4바이트, 단일 정밀도 부동 소수점 수 FLOAT64
double precision 8바이트, 배정밀도 부동 소수점 수 FLOAT64
날짜 및 시간
날짜 달력 날짜(연, 월, 일) DATE
time [ (p) ] [ 시간대 제외 ] 시간(시간대 없음) TIME
time [ (p) ](시간대 포함) 시간(시간대 포함) 지원되지 않음
timestamp [ (p) ] [ 시간대 제외 ] 날짜 및 시간(시간대 없음) DATETIME
timestamp [ (p) ](시간대 포함) 날짜 및 시간(시간대 포함) TIMESTAMP PostgreSQL TIMESTAMP는 BigQuery를 호출하는 위치에 관계없이 UTC 시간대로 검색됩니다.
간격 지속 시간 지원되지 않음
문자 및 문자열
character [ (n) ] 고정 길이 문자 문자열 STRING
character varying [ (n) ] 가변 길이 문자 문자열 STRING
텍스트 가변 길이 문자 문자열 STRING
바이너리
bytea 바이너리 데이터('바이트 배열') BYTES
bit [ (n) ] 고정 길이 비트 문자열 BYTES
bit varying [ (n) ] 가변 길이 비트 문자열 BYTES
기타
부울 논리 부울(true/false) BOOL
inet IPv4 또는 IPv6 호스트 주소 지원되지 않음
경로 평면상의 기하학적 경로 지원되지 않음
pg_lsn PostgreSQL 로그 시퀀스 번호 지원되지 않음
point 평면상의 기하학적 점 지원되지 않음
polygon 평면상의 닫힌 기하학적 경로 지원되지 않음
tsquery 텍스트 검색어 지원되지 않음
tsvector 텍스트 검색 문서 지원되지 않음
txid_snapshot 사용자 수준 트랜잭션 ID 스냅샷 지원되지 않음
uuid 범용 고유 식별자 지원되지 않음
xml XML 데이터입니다. STRING
box 평면상의 직사각형 상자 지원되지 않음
cidr IPv4 또는 IPv6 네트워크 주소 지원되지 않음
평면상의 원 지원되지 않음
interval [ fields ] [ (p) ] 기간 지원되지 않음
json 텍스트 JSON 데이터 STRING
jsonb 바이너리 JSON 데이터(분할됨) 지원되지 않음
평면상의 무한 선 지원되지 않음
lseg 평면상의 선분 지원되지 않음
macaddr MAC(미디어 액세스 제어) 주소 지원되지 않음
macaddr8 MAC(미디어 액세스 제어) 주소(EUI-64 형식) 지원되지 않음