Ignite 커넥터

Ignite 커넥터 (Ignite connector)

Ignite 커넥터는 Trino에서 Apache Ignite 데이터베이스를 질의할 수 있게 해 줘요.

출처: 문서

본문

요구사항 (Requirements)

Ignite 서버에 연결하려면 다음이 필요해요:

  • Ignite 2.9.0 이상.
  • Trino 코디네이터와 워커에서 Ignite 서버로 네트워크 접근. 기본 포트는 10800이에요.
  • Trino 서버를 시작할 때 jvm.config--add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED를 지정하세요.

설정 (Configuration)

Ignite 커넥터는 기본적으로 public 스키마를 노출해요.

이 커넥터는 Ignite 인스턴스를 질의할 수 있어요. connector.nameignite로 설정해 Ignite 커넥터를 지정하는 카탈로그 속성 파일을 만드세요.

예를 들어 인스턴스에 example로 접근하려면 etc/catalog/example.properties 파일을 만들고, 연결 속성은 환경에 맞게 바꾸세요:

connector.name=ignite
connection-url=jdbc:ignite:thin://host1:10800/
connection-user=exampleuser
connection-password=examplepassword

쿼리 출처 표시용 코멘트:

query.comment-format=Query sent by Trino.
SELECT * FROM example_table; /*Query sent by Trino.*/

자리 표시자 사용:

query.comment-format=Query $QUERY_ID sent by user $USER from Trino.
SELECT * FROM example_table; /*Query 20230622_180528_00000_bkizg sent by user Jane from Trino.*/

대소문자를 구분하는 이름 매핑 구성:

{
  "schemas": [
    {
      "remoteSchema": "CaseSensitiveName",
      "mapping": "case_insensitive_1"
    },
    {
      "remoteSchema": "cASEsENSITIVEnAME",
      "mapping": "case_insensitive_2"
    }],
  "tables": [
    {
      "remoteSchema": "CaseSensitiveName",
      "remoteTable": "tablex",
      "mapping": "table_1"
    },
    {
      "remoteSchema": "CaseSensitiveName",
      "remoteTable": "TABLEX",
      "mapping": "table_2"
    }]
}
case-insensitive-name-matching.config-file.refresh-period=30s

primary_key를 지정해 테이블을 생성할 수 있어요:

CREATE TABLE public.person (
  id BIGINT NOT NULL,
  birthday DATE NOT NULL,
  name VARCHAR(26),
  age BIGINT,
  logdate DATE
)
WITH (
  primary_key = ARRAY['id', 'birthday']
);

UPDATE 연산 지원:

UPDATE table SET col1 = 1 WHERE col3 = 1
UPDATE table SET col1 = col2 + 2 WHERE col3 = 1
UPDATE table SET col1 = 1, col2 = 2, col3 = 3 WHERE col3 = 1

같은 스키마 안에서 테이블 이름 변경:

ALTER TABLE example.schema_one.table_one RENAME TO example.schema_one.table_two

다른 스키마로 이동:

ALTER TABLE example.schema_one.table_one RENAME TO example.schema_two.table_two

메타데이터 캐시를 비우고 싶을 때:

USE example.example_schema;
CALL system.flush_metadata_cache();

Ignite에 대해 SQL로 명령을 실행하거나:

USE example.example_schema;
CALL system.execute(query => 'ALTER TABLE your_table ALTER COLUMN your_column DROP DEFAULT');

푸시다운 동작을 확인하는 예시:

SELECT * FROM nation WHERE name > 'CANADA';
SELECT * FROM nation WHERE name = 'CANADA';

더 알아보기 (Learn more)

다른 인메모리 데이터 그리드 커넥터가 궁금하다면 JMX 커넥터 문서를 이어서 읽어 보세요.