HPL/SQL - MAP OBJECT 문

HPL/SQL - MAP OBJECT 문 (Statement)

MAP OBJECT 문은 테이블이나 뷰 같은 객체를 특정 커넥션 프로파일(connection profile)에 매핑하는 HPL/SQL 문이에요. HPL/SQL 스크립트에서 사용하는 객체 이름을 데이터베이스의 실제 객체 이름과 연결할 수도 있어서, 하나의 스크립트 안에서 여러 DBMS를 함께 다루기 좋답니다.

출처: 문서

본문

MAP OBJECT 문은 객체(테이블 또는 뷰)를 커넥션 프로파일에 매핑할 수 있게 해줘요. 이 문을 사용해 HPL/SQL 스크립트에서 사용하는 객체 이름을 데이터베이스의 실제 객체 이름에 매핑할 수도 있어요.

객체에 연결된 커넥션 프로파일에 따라 HPL/SQL은 단일 HPL/SQL 스크립트 안에서 여러 데이터베이스와 협력해 서로 다른 객체에 접근할 수 있어요.

예를 들어, 쿼리는 Hive에 보내면서 로깅은 RDBMS나 NoSQL 데이터베이스를 사용할 수 있어요.

구문 (Syntax):

MAP OBJECT source_name [TO target_name] [AT connection_profile];

참고 (Notes):

  • source_name - HPL/SQL 스크립트에서 사용하는 객체 이름이에요.
  • target_name - 데이터베이스에 접근할 때 실제로 사용되는 객체 이름이에요.
  • connection_profile - 이 객체에 접근할 때 사용하는 커넥션 프로파일이에요. 프로파일을 지정하지 않으면 default 프로파일이 사용돼요.
  • target_name 또는 connection_profile 중 적어도 하나는 지정해야 해요.
  • source_name, target_name, connection_profile은 모두 표현식이므로 동적으로 정의할 수 있어요.

예제 (Example):

Hive에 쿼리를 보내고 로그 메시지는 MySQL 데이터베이스에 기록하려면:

MAP OBJECT log TO log.log_data AT mysqlconn;

DECLARE cnt INT;
SELECT count(*) INTO cnt FROM sales.users WHERE local_dt = CURRENT_DATE;

INSERT INTO log (message) VALUES ('Number of users: ' || cnt);

호환성 (Compatibility): HPL/SQL 확장

더 알아보기 (Learn more)

  • HPL/SQL Reference에서 HPL/SQL의 다양한 문과 확장 기능을 더 살펴볼 수 있어요.