베타PostgreSQL 또는 MySQL에서 HubSpot 데이터에 액세스하기
마지막 업데이트 날짜: 2026년 10월 26일
PostgreSQL 및 MySQL용 Data Out을 사용하여 선택한 HubSpot CRM 데이터를 본인이 소유한 데이터베이스의 테이블로 내보낼 수 있습니다. 동기화가 실행될 때마다 선택한 데이터의 전체 스냅샷이 기록되며, 이전 스냅샷은 대체됩니다. 동기화가 완료된 후에는 SQL 또는 선호하는 BI 및 분석 도구를 사용하여 테이블을 쿼리함으로써 HubSpot 데이터를 다른 비즈니스 데이터와 결합할 수 있습니다.
참고: 슈퍼 관리자인 경우, 이 기능을 사용하려면 계정을Data Studio 베타 프로그램에 등록해야합니다.
특정 기능에 대해 HubSpot 크레딧 필요 Data Studio의 단일 웨어하우스 소스에서 HubSpot CRM으로 데이터를 직접 동기화하는 경우 HubSpot 크레딧이 소모되지 않습니다. 동기화 전에 Data Studio에서 데이터를 준비하는 경우(예: 계산된 필드 생성 또는 다른 데이터 소스와 조인), 해당 작업에는 HubSpot 크레딧이 소모됩니다.
제한 사항 및 고려 사항 이해
이 기능을 사용하기 전에, 사전에 수행해야 할 단계와 기능의 제한 사항, 그리고 사용 시 발생할 수 있는 결과를 충분히 숙지하시기 바랍니다.
- 각 동기화 작업은 대상 테이블을 최신 스냅샷으로 대체합니다. HubSpot은 이전 스냅샷을 보관하지 않습니다.
- HubSpot 계정당 각 개체, 이벤트 유형 또는 연관 쌍은 하나의 정기 PostgreSQL 동기화와 하나의 정기 MySQL 동기화에 포함될 수 있습니다. 이러한 동기화는 서로 독립적이며 다른 Data Out 제공자와도 독립적입니다.
- 민감한 데이터는 아직 지원되지 않습니다. 민감한 속성은 내보내기에서 제외할 수 있습니다.
OBJECTS_CONTACTS와 같은 개체별 테이블은 아직 지원되지 않습니다.- PostgreSQL에서는 테이블 및 열 이름의 대소문자를 구분하며, MySQL에서도 대소문자를 구분할 수 있습니다. 쿼리를 작성하기 전에 쿼리 구문을 검토하십시오.
내보낼 수 있는 데이터 파악하기
HubSpot에서 PostgreSQL 또는 MySQL로 다음 데이터를 동기화할 수 있습니다.
- 개체: 연락처, 회사, 거래, 티켓, 제품과 같은 표준 및 사용자 정의 개체.
- 레코드: 선택한 객체에 대한 개별 레코드입니다.
- 속성: 레코드의 선택된 속성 값 및 속성 내역.
- 연관 관계: 연관 관계 정의를 포함하여 레코드 간의 선택된 관계입니다.
- 이벤트: 선택된 표준 HubSpot 이벤트 및 사용자 지정 행동 이벤트(선택된 이벤트 속성 포함).
서로 다른 개체의 데이터는 개체 테이블에 통합되어 있습니다. 개체 테이블을 읽을 때는 OBJECTTYPEID 사용하여 특정 개체를 필터링하십시오. 예를 들어, 연락처의 경우 0-1 사용합니다. 사용자 정의 개체는 생성 시 ID가 할당되며, 2-{unique_id} 형식(예: 2-12345)으로 식별됩니다.
내보내기 형식 이해하기
설정 과정에서 다음을 선택합니다:
- 대상 데이터베이스. 이는 PostgreSQL에만 적용됩니다. MySQL의 경우 HubSpot에서 데이터베이스를 생성합니다.
- 동기화할 데이터 소스: 개체, 이벤트, 연관 관계 또는 이러한 소스의 조합.
- 동기화 일정.
HubSpot은 데이터를 Parquet 파일로 내보내 데이터베이스의 테이블에 직접 로드합니다. PostgreSQL 및 MySQL은 고객 소유의 스테이징 버킷을 사용하지 않습니다. HubSpot이 스테이징을 내부적으로 관리합니다.
데이터베이스에서 데이터 찾기
HubSpot은 데이터 소스마다 대상 이름과 동일한 이름을 가진 HubSpot 관리 스키마 내에 하나의 테이블을 생성합니다. 정확한 스키마 이름은 동기화 구성 페이지에서 확인할 수 있습니다.
- PostgreSQL:
<database>.hubspot_data_out_<destination-id>.<table-name> - MySQL:
hubspot_data_out_<destination-id>.<table-name>. MySQL에서는 스키마와 데이터베이스가 동일한 개념이며, HubSpot에서 이를 생성합니다. 별도로 선택할 데이터베이스 수준은 없습니다.
예를 들어, PostgreSQL의 경우:
your_database.hubspot_data_out_456.OBJECT_WITH_OBJECT_PROPERTIESyour_database.hubspot_data_out_456.EVENTS_VISITED_PAGEyour_database.hubspot_data_out_456.ASSOCIATIONS_CONTACTS_TO_COMPANIES
예를 들어, MySQL의 경우:
hubspot_data_out_456.OBJECT_WITH_OBJECT_PROPERTIEShubspot_data_out_456.EVENTS_VISITED_PAGEhubspot_data_out_456.ASSOCIATIONS_CONTACTS_TO_COMPANIES
각 동기화 시에는 테이블이 최신 스냅샷으로 대체됩니다. HubSpot은 이전 스냅샷을 보관하지 않습니다. 동기화 중에 테이블에 오류가 발생하면, 다음 동기화가 성공적으로 완료될 때까지 이전 데이터가 그대로 유지됩니다.
테이블 및 열 이름
테이블 및 열 이름은 내보낸 데이터에서 가져옵니다. PostgreSQL 식별자는 63자, MySQL 식별자는 64자로 제한됩니다. HubSpot은 길이가 초과되는 이름을 제한된 길이에 맞게 줄입니다.
식별자의 대소문자
식별자의 대소문자 구분이 중요합니다. HubSpot은 이 문서의 테이블과 일치하도록, 따옴표로 묶인 대소문자를 그대로 유지한 대문자 이름을 사용하여 모든 테이블과 열을 생성합니다.
- PostgreSQL: 표시된 대로 이름을 정확히 큰따옴표로 묶으십시오. PostgreSQL은 따옴표로 묶이지 않은 이름을 소문자로 변환하므로 일치하지 않습니다.
- MySQL: 백틱을 사용하고 표시된 대소문자를 정확히 일치시켜야 합니다. 테이블 이름의 대소문자 구분 여부는 서버 구성에 따라 다릅니다.
PostgreSQL 예시:
SELECT * FROM your_database.hubspot_data_out_456."OBJECT_WITH_OBJECT_PROPERTIES" WHERE "OBJECTTYPEID" = '0-1';
MySQL 예시:
SELECT * FROM `hubspot_data_out_456`.`OBJECT_WITH_OBJECT_PROPERTIES` WHERE `OBJECTTYPEID` = '0-1';
열 데이터형
열 유형은 내보낸 데이터를 따르며, 다음과 같이 PostgreSQL 및 MySQL 유형에 매핑됩니다:
| 내보내기 유형 | PostgreSQL | MySQL |
|---|---|---|
| 문자열 | TEXT |
LONGTEXT |
| 숫자 (32비트) | INTEGER |
INT |
| 숫자(64비트) | BIGINT |
BIGINT |
| 타임스탬프 | TIMESTAMP |
DATETIME(6) |
| Boolean | BOOLEAN |
TINYINT(1) |
| 소수 | NUMERIC |
DECIMAL |
참고: PROPERTIES OBJECT_WITH_OBJECT_PROPERTIES 열은 JSON 형식의 문자열로 내보내집니다. 이 열은 JSON 열 유형이 아닌, PostgreSQL에서는 TEXT, MySQL에서는 LONGTEXT 저장됩니다. 쿼리 예제는 FAQ를 참조하십시오.
객체 테이블 검토
객체 데이터를 선택하면 HubSpot은 다음 테이블을 내보냅니다.
OBJECT_PROPERTIES
이 테이블에는 속성 값마다 한 행씩 포함됩니다. 특정 객체를 조회하려면 OBJECTTYPEID 필터링하십시오.
| 열 이름 | 유형 | 설명 |
|---|---|---|
OBJECTTYPEID |
문자열 | 개체의 ID입니다. 예를 들어, 연락처의 경우 0-1 사용합니다. |
OBJECTID |
숫자 | 레코드의 ID입니다. |
NAME |
문자열 | 속성 이름. |
VALUE |
문자열 | 속성 값. |
UPDATEDAT |
타임스탬프 | HubSpot에서 속성 값이 마지막으로 업데이트된 날짜 및 시간. |
INGESTEDAT |
타임스탬프 | 데이터가 내보내기 소스로 마지막으로 수집된 날짜 및 시간입니다. |
OBJECT_WITH_OBJECT_PROPERTIES
이 테이블에는 레코드당 한 행이 포함되며, 선택한 속성 값이 하나의 PROPERTIES 열로 그룹화되어 있습니다. 특정 객체를 조회하려면 OBJECTTYPEID 필터링하십시오.
| 열 이름 | 유형 | 설명 |
|---|---|---|
OBJECTTYPEID |
문자열 | 개체의 ID입니다. 예를 들어, 연락처의 경우 0-1 사용합니다. |
OBJECTID |
숫자 | 레코드의 ID입니다. |
PROPERTIES |
텍스트 (JSON) | 레코드에 대해 선택된 속성 값을 JSON 형식의 문자열로 나타낸 것입니다. |
UPDATEDAT |
타임스탬프 | HubSpot에서 레코드의 선택된 속성이 마지막으로 업데이트된 날짜 및 시간입니다. |
INGESTEDAT |
타임스탬프 | 데이터가 내보내기 소스로 마지막으로 수집된 날짜 및 시간. |
OBJECT_PROPERTIES_HISTORY
이 테이블에는 속성 변경 내역이 포함되어 있습니다. 현재 값만 저장하는 OBJECT_PROPERTIES 달리, 이 테이블은 속성의 각 과거 값마다 한 행씩을 포함합니다. 단일 레코드 및 속성에 대한 전체 타임라인을 보려면 UPDATEDAT 순으로 정렬하십시오.
| 열 이름 | 유형 | 설명 |
|---|---|---|
OBJECTTYPEID |
문자열 | 개체의 ID입니다. |
OBJECTID |
숫자 | 레코드의 ID입니다. |
NAME |
문자열 | 속성 이름. |
VALUE |
문자열 | 해당 시점의 속성 값입니다. |
UPDATEDAT |
타임스탬프 | HubSpot에서 해당 값이 설정된 날짜 및 시간. |
INGESTEDAT |
타임스탬프 | 데이터가 내보내기 소스로 마지막으로 수집된 날짜 및 시간입니다. |
연관 테이블 검토
연관 데이터를 선택하면 HubSpot은 연관 레코드와 연관 정의를 내보냅니다.
ASSOCIATIONS
이 테이블에는 두 레코드 간의 선택된 연관 관계마다 한 행씩 포함됩니다.
| 열 이름 | 유형 | 설명 |
|---|---|---|
COMBINEDASSOCIATIONTYPEID |
문자열 | 연관 정의에 대한 고유 식별자입니다. |
ASSOCIATIONCATEGORY |
문자열 | 연관 유형의 출처입니다. 값으로는 HUBSPOT_DEFINED, USER_DEFINED 또는 INTEGRATOR_DEFINED 포함될 수 있습니다. |
ASSOCIATIONTYPEID |
숫자 | 해당 범주 내의 연관성 정의에 대한 식별자입니다. |
FROMOBJECTID |
숫자 | 소스 레코드의 ID입니다. |
TOOBJECTID |
숫자대상 레코드의 ID입니다. | 대상 레코드의 ID입니다. |
INGESTEDAT |
타임스탬프 | 데이터가 내보내기 소스로 마지막으로 수집된 날짜 및 시간입니다. |
ASSOCIATION_DEFINITIONS
이 테이블에는 선택한 연관 관계 정의 하나당 한 행이 포함됩니다.
| 열 이름 | 유형 | 설명 |
|---|---|---|
COMBINEDASSOCIATIONTYPEID |
문자열 | 연관 정의에 대한 고유 식별자입니다. |
CATEGORY |
문자열 | 연관 유형의 출처입니다. 값으로는 HUBSPOT_DEFINED, USER_DEFINED 또는 INTEGRATOR_DEFINED 포함될 수 있습니다. |
ID |
숫자 | 해당 카테고리 내의 연관 관계 정의에 대한 식별자입니다. |
FROMOBJECTTYPEID |
문자열 | 소스 객체의 ID입니다. |
TOOBJECTTYPEID |
문자열 | 대상 객체의 ID입니다. |
NAME |
문자열 | 연관 정의의 이름입니다. |
LABEL |
문자열 | 연관 정의의 레이블입니다. |
INGESTEDAT |
타임스탬프 | 데이터가 내보내기 소스로 마지막으로 수집된 날짜 및 시간입니다. |
ISMAINASSOCIATIONDEFINITION |
부울 | HubSpot이 이 연관 관계 정의를 연관된 레코드에서 주 연관 관계로 표시할지 여부. |
ASSOCIATIONS_<FROM_OBJECT>_TO_<TO_OBJECT>
선택된 연관성 쌍에 대해 HubSpot은 ASSOCIATIONS_CONTACTS_TO_COMPANIES 같이 쌍별 연관성 테이블도 내보낼 수 있습니다. 이러한 테이블에는 연관성 레코드와 연관성 정의 메타데이터가 함께 포함됩니다.
| 열 이름 | 유형 | 설명 |
|---|---|---|
COMBINEDASSOCIATIONTYPEID |
문자열 | 연관 정의에 대한 고유 식별자입니다. |
ASSOCIATIONCATEGORY |
문자열 | 연관 유형의 출처입니다. 값으로는 HUBSPOT_DEFINED, USER_DEFINED 또는 INTEGRATOR_DEFINED 포함될 수 있습니다. |
ASSOCIATIONTYPEID |
숫자 | 해당 범주 내의 연관성 정의에 대한 식별자입니다. |
[FROMOBJECT]_OBJECTID |
숫자 | 소스 레코드의 ID입니다. 예: CONTACT_OBJECTID. |
[TOOBJECT]_OBJECTID |
숫자 | 대상 레코드의 ID입니다. 예: COMPANY_OBJECTID. |
INGESTEDAT |
타임스탬프 | 데이터가 내보내기 소스로 마지막으로 수집된 날짜 및 시간입니다. |
TOOBJECTTYPEID |
문자열 | 대상 개체의 ID입니다. |
FROMOBJECTTYPEID |
문자열 | 소스 객체의 ID입니다. |
NAME |
문자열 | 연관 정의의 이름입니다. |
LABEL |
문자열 | 연관 정의의 레이블입니다. |
ISMAINASSOCIATIONDEFINITION |
부울 | HubSpot이 이 연관 관계 정의를 연관된 레코드에서 주 연관 관계로 표시할지 여부. |
이벤트 테이블 검토
이벤트 데이터를 선택하면 HubSpot은 이벤트 유형별로 하나의 테이블을 내보냅니다. 테이블 이름은 EVENTS_<EVENT_NAME> 형식을 따르며, 예를 들어 EVENTS_VISITED_PAGE 같습니다.
각 이벤트 테이블에는 표준 이벤트 열과 선택한 각 이벤트 속성에 대한 열이 하나씩 포함됩니다.
| 열 이름 | 유형 | 설명 |
|---|---|---|
EVENTTYPEID |
문자열 | 이벤트 유형 ID. |
ID |
문자열 | 고유한 이벤트 ID입니다. |
OBJECTTYPEID |
문자열 | 이벤트와 연관된 객체의 ID입니다. |
OBJECTID |
숫자 | 이벤트와 관련된 레코드의 ID입니다. |
INGESTEDAT |
타임스탬프 | 이벤트가 내보내기 소스로 수집된 날짜 및 시간입니다. |
OCCURREDATDATEINT |
숫자 | 이벤트 날짜를 YYYYMMDD 형식의 정수로 나타낸 값입니다. |
OCCURREDAT |
타임스탬프 | 이벤트가 발생한 날짜 및 시간. |
PROPERTY_<PROPERTY_NAME> |
문자열 | 선택된 이벤트 속성입니다. 예를 들어, page_title 속성은 PROPERTY_PAGE_TITLE 내보내집니다. |
동기화 일정 관리
HubSpot에서 설정하는 동안 동기화 일정을 구성할 수 있습니다. 또한 HubSpot에서 수동으로 재동기화를 실행할 수도 있습니다. 동기화가 실행될 때마다 선택한 데이터의 전체 스냅샷이 생성됩니다. 데이터 양을 조절하려면 포함할 개체, 이벤트, 연관 관계 및 속성을 선택하십시오.
참고: 베타 기간 중에는 ‘1회’, ‘6시간마다’, ‘12시간마다’, ‘매일’, ‘매주’, ‘매월’과 같이 제한된 동기화 빈도만 사용할 수 있습니다. 향후 릴리스에서 추가적인 빈도 옵션이 제공될 수 있습니다.
동기화 모니터링 및 오류 처리
HubSpot에서 PostgreSQL 및 MySQL 동기화를 모니터링할 수 있습니다. 동기화는 다음 상태 중 하나를 가질 수 있습니다:
| 상태 | 의미 |
|---|---|
| 동기화 중 | 현재 동기화 작업이 진행 중입니다. |
| 동기화됨 | 마지막 동기화가 성공적으로 완료되었습니다. |
| 실패 | 마지막 동기화 실행에서 오류가 발생했습니다. |
| 보관됨 | 동기화 구성이 보관되거나 제거되었습니다. |
동기화가 실패할 경우:
- HubSpot은 '실패' 상태를 표시하며, 테이블별 세부 정보를 통해 어떤 테이블이 성공했는지 또는 실패했는지 보여줍니다.
- HubSpot이 해당 테이블의 모든 데이터 로딩을 완료한 후에만 테이블이 업데이트되므로, 부분적으로만 로딩된 테이블은 표시되지 않습니다.
- 테이블 동기화가 실패하면, 다음 동기화가 성공적으로 완료될 때까지 이전 데이터가 그대로 유지됩니다.
- 다음 예약된 동기화 시점에 전체 동기화가 자동으로 다시 시도됩니다.
- HubSpot에서 언제든지 수동으로 재동기화를 실행할 수 있습니다.
이전 실행에서 성공했던 테이블은 이후 실행이 실패하더라도 수정되지 않습니다.
자주 묻는 질문
데이터를 어떻게 조회하나요?
SQL을 사용하여 대상 스키마의 테이블을 쿼리하십시오.
PostgreSQL
모든 연락처 레코드 읽기:
SELECT * FROM your_database.hubspot_data_out_456."OBJECT_WITH_OBJECT_PROPERTIES" WHERE "OBJECTTYPEID" = '0-1';
PROPERTIES JSON 열에서 특정 속성을 읽어오려면, 해당 열이 텍스트로 저장되어 있으므로 먼저 JSON으로 형변환해야 합니다:
SELECT "OBJECTID", json_extract_path_text("PROPERTIES"::json, 'email') AS email FROM your_database.hubspot_data_out_456."OBJECT_WITH_OBJECT_PROPERTIES" WHERE "OBJECTTYPEID" = '0-1';
MySQL
모든 연락처 레코드 읽기:
SELECT * FROM `hubspot_data_out_456`.`OBJECT_WITH_OBJECT_PROPERTIES` WHERE `OBJECTTYPEID` = '0-1';
PROPERTIES JSON 열에서 특정 속성을 읽으려면:
SELECT `OBJECTID`, JSON_EXTRACT(`PROPERTIES`, '$.email') AS email FROM `hubspot_data_out_456`.`OBJECT_WITH_OBJECT_PROPERTIES` WHERE `OBJECTTYPEID` = '0-1';
하나의 데이터 유형을 여러 동기화에서 내보낼 수 있나요?
HubSpot 계정당 각 개체, 이벤트 유형 또는 연관 쌍은 하나의 반복 PostgreSQL 동기화와 하나의 반복 MySQL 동기화에 포함될 수 있습니다. 이러한 동기화는 서로 독립적이며 다른 Data Out 제공자와도 독립적입니다. 예를 들어, 연락처가 이미 반복 PostgreSQL 대상에 내보내진 경우, 첫 번째 동기화를 아카이브하기 전까지는 다른 반복 PostgreSQL 동기화에 연락처를 추가할 수 없습니다. 하지만 동시에 반복 MySQL 동기화로 연락처를 내보내는 것은 가능합니다.
개체별 테이블이 지원되나요?
아니요. OBJECTS_CONTACTS 같은 개체별 테이블은 아직 지원되지 않습니다. 특정 개체의 레코드를 가져오려면 OBJECT_WITH_OBJECT_PROPERTIES 사용하고 OBJECTTYPEID 필터링하십시오.
민감 정보는 지원되나요?
아니요. Data Out에서는 아직 민감한 데이터가 지원되지 않습니다. 내보내기 시 민감한 속성을 제외할 수 있습니다.
HubSpot은 이전 스냅샷을 보관하나요?
아니요. 동기화할 때마다 대상 테이블이 최신 스냅샷으로 대체되므로 이전 스냅샷은 보관되지 않습니다.