본문 바로가기

Ignite - 기술

Python 씬 클라이언트

전제 조건

Python 3.4 이상.

설치

pipzip 아카이브를 사용 하거나에서 Python 씬 클라이언트를 설치할 수 있습니다 .

PIP 사용

파이썬 씬 클라이언트 패키지는 pyignite. 다음 명령을 사용하여 설치할 수 있습니다.

 

ZIP 아카이브 사용

씬 클라이언트는 zip 아카이브에서 설치할 수 있습니다.

  • Apache Ignite 바이너리 패키지를 다운로드합니다 .

  • 아카이브의 압축을 풀고 루트 폴더로 이동하십시오.

  • 아래 명령을 사용하여 클라이언트를 설치하십시오.

사용법에 대한 자세한 내용은 Setuptools 설명서 를 참조하십시오 setup.py.

클러스터에 연결

배포 패키지에는 Python 씬 클라이언트의 기본 사용 시나리오를 보여주는 실행 가능한 예제가 포함되어 있습니다. 예제는 {ROOT_FOLDER}/examples디렉토리에 있습니다.

다음 코드 조각은 Python 씬 클라이언트에서 클러스터에 연결하는 방법을 보여줍니다.

 

클라이언트 장애 조치

현재 노드에 대한 연결이 실패하거나 시간 초과되는 경우 다른 노드로 자동으로 장애 조치하도록 클라이언트를 구성 할 수 있습니다.

연결이 실패하면 클라이언트는 초기 예외 ( OSError또는 SocketError)를 전파 하지만 생성자의 매개 변수는 그대로 유지하고 투명하게 재 연결을 시도합니다. 클라이언트가 재 연결에 실패하면 특별한 ReconnectError예외가 발생합니다.

다음 예에서 클라이언트에는 세 개의 클러스터 노드 주소가 제공됩니다.

 

파티션 인식

파티션 인식을 통해 씬 클라이언트는 쿼리 된 데이터를 소유 한 노드에 쿼리 요청을 직접 보낼 수 있습니다.

파티션 인식없이 씬 클라이언트를 통해 클러스터에 연결된 애플리케이션은 들어오는 요청에 대한 프록시 역할을하는 단일 서버 노드를 통해 모든 쿼리와 작업을 실행합니다. 그런 다음 이러한 작업은 요청중인 데이터를 저장하는 노드로 다시 라우팅됩니다. 이로 인해 응용 프로그램이 선형으로 확장되는 것을 방해 할 수있는 병목 현상이 발생합니다.

 

쿼리가 올바른 노드로 라우팅되는 프록시 서버 노드를 통과해야하는 방법에 유의하십시오.

파티션 인식을 사용하면 씬 클라이언트는 쿼리에 필요한 데이터를 소유하는 기본 노드로 쿼리 및 작업을 직접 라우팅 할 수 있습니다. 이렇게하면 병목 현상이 제거되어 애플리케이션을보다 쉽게 ​​확장 할 수 있습니다.

 

파티션 인식을 사용하려면 partition_aware클라이언트 생성자에서 매개 변수를 true로 설정 하고 연결 문자열에 모든 서버 노드의 주소를 제공하십시오.

 

캐시 생성

다음 방법 중 하나를 사용하여 캐시 인스턴스를 가져올 수 있습니다.

  • get_cache(settings)— 지정된 이름 또는 매개 변수 집합을 사용하여 로컬 캐시 개체를 만듭니다. 캐시는 클러스터에 있어야합니다. 그렇지 않으면 해당 캐시에서 작업을 수행하려고 할 때 예외가 발생합니다.

  • create_cache(settings) — 주어진 이름 또는 매개 변수 세트로 캐시를 생성합니다.

  • get_or_create_cache(settings) — 기존 캐시를 반환하거나 캐시가없는 경우 생성합니다.

각 메서드는 캐시 구성을 나타내는 캐시 이름 또는 속성 사전을받습니다.

 

지원되는 캐시 속성 목록은 다음 섹션을 참조하세요.

캐시 구성

지정할 수있는 속성 키 목록은 prop_codes모듈 에서 제공됩니다 .

부동산 이름유형기술

PROP_NAME

str

캐시 이름. 이것은 유일한 필수 속성입니다.

PROP_CACHE_MODE

int

모드 캐시 :

  • REPLICATED = 1,

  • 분할 됨 = 2

PROP_CACHE_ATOMICITY_MODE

int

캐시 원 자성 모드 :

  • TRANSACTIONAL = 0,

  • 원자 = 1

PROP_BACKUPS_NUMBER

int

백업 파티션 수 .

PROP_WRITE_SYNCHRONIZATION_MODE

int

쓰기 동기화 모드 :

  • FULL_SYNC = 0,

  • FULL_ASYNC = 1,

  • PRIMARY_SYNC = 2

PROP_COPY_ON_READ

부울

읽을 때 복사 플래그입니다. 기본값은 true입니다.

PROP_READ_FROM_BACKUP

부울

사용 가능한 경우 항목을 로컬 백업 파티션에서 읽을 것인지 또는 항상 주 파티션에서 요청할 것인지를 나타내는 플래그입니다. 기본값은 true입니다.

PROP_DATA_REGION_NAME

str

데이터 영역 이름.

PROP_IS_ONHEAP_CACHE_ENABLED

부울

캐시에 대해 힙 캐싱  활성화 합니다.

PROP_QUERY_ENTITIES

명부

쿼리 엔터티 목록입니다. 자세한 내용은 아래  쿼리 항목 섹션을 참조하세요.)

PROP_QUERY_PARALLELISM

int

쿼리 병렬 처리

PROP_QUERY_DETAIL_METRIC_SIZE

int

쿼리 세부 메트릭 크기

PROP_SQL_SCHEMA

str

SQL 스키마

PROP_SQL_INDEX_INLINE_MAX_SIZE

int

SQL 인덱스 인라인 최대 크기

PROP_SQL_ESCAPE_ALL

부울

SQL 이스케이프를 켭니다.

PROP_MAX_QUERY_ITERATORS

int

최대 쿼리 반복기 수

PROP_REBALANCE_MODE

int

재조정 모드 :

  • SYNC = 0,

  • ASYNC = 1,

  • 없음 = 2

PROP_REBALANCE_DELAY

int

재조정 지연 (ms)

PROP_REBALANCE_TIMEOUT

int

재조정 제한 시간 (밀리 초)

PROP_REBALANCE_BATCH_SIZE

int

배치 크기 재조정

PROP_REBALANCE_BATCHES_PREFETCH_COUNT

int

프리 페치 수 재조정

PROP_REBALANCE_ORDER

int

재조정 순서

PROP_REBALANCE_THROTTLE

int

재조정 스로틀 간격 (ms)

PROP_GROUP_NAME

str

그룹 이름

PROP_CACHE_KEY_CONFIGURATION

명부

캐시 키 구성 ( 캐시 키 참조 )

PROP_DEFAULT_LOCK_TIMEOUT

int

기본 잠금 제한 시간 (밀리 초)

PROP_MAX_CONCURRENT_ASYNC_OPERATIONS

int

동시 비동기 작업의 최대 수

PROP_PARTITION_LOSS_POLICY

int

파티션 손실 정책 :

  • READ_ONLY_SAFE = 0,

  • READ_ONLY_ALL = 1,

  • READ_WRITE_SAFE = 2,

  • READ_WRITE_ALL = 3,

  • 무시 = 4

PROP_EAGER_TTL

부울

열망 TTL

PROP_STATISTICS_ENABLED

부울

통계를 활성화하는 플래그입니다.

항목 쿼리

쿼리 항목은 쿼리 가능한 필드 , 즉 SQL 쿼리를 사용하여 쿼리 할 수있는 캐시 개체의 필드를 설명하는 개체입니다.

  • table_name: SQL 테이블 이름.

  • key_field_name: 키 필드의 이름입니다.

  • key_type_name: 키 유형의 이름 (Java 유형 또는 복합 객체).

  • value_field_name: 값 필드의 이름입니다.

  • value_type_name: 값 유형의 이름입니다.

  • field_name_aliases: 0 개 이상의 별칭 사전 목록입니다 ( 필드 이름 별칭 참조 ).

  • query_fields: 0 개 이상의 쿼리 필드 이름 목록 ( 쿼리 필드 참조 ).

  • query_indexes: 0 개 이상의 쿼리 색인 목록 (참조 쿼리 인덱스 ).

필드 이름 별칭

필드 이름 별칭은 전체 속성 이름 (object.name → objectName)에 편리한 이름을 제공하는 데 사용됩니다.

  • field_name: 분야 명.

  • alias: 별칭 (p).

쿼리 필드

쿼리 필드는 쿼리 가능한 필드를 정의합니다.

  • name: 분야 명.

  • type_name: Java 유형 또는 복합 객체의 이름입니다.

  • is_key_field: (선택 사항) 부울 값, 기본값은 False입니다.

  • is_notnull_constraint_field: 부울 값.

  • default_value: (선택 사항) type_name 유형으로 변환 할 수있는 모든 것. 기본적으로 없음 (Null)입니다.

  • precision: (선택 사항) 소수 정밀도 : 소수 값의 총 자릿수. 기본값은 -1 (클러스터 기본값 사용)입니다. 10 진수가 아닌 SQL 유형 (java.math.BigDecimal 제외)의 경우 무시됩니다.

  • scale: (선택 사항) 소수점 정밀도 : 소수점 뒤의 자릿수. 기본값은 -1 (클러스터 기본값 사용)입니다. 10 진수가 아닌 SQL 유형의 경우 무시됩니다.

쿼리 인덱스

쿼리 인덱스는 인덱싱 될 필드를 정의합니다.

  • index_name: 색인 이름.

  • index_type: 부호없는 바이트 범위의 정수 값으로 인덱스 유형 코드.

  • inline_size: 정수 값.

  • fields: 0 개 이상의 인덱싱 된 필드 목록 (필드 참조).

필드

  • name: 분야 명.

  • is_descending: (선택 사항) 부울 값; 기본적으로 False입니다.

캐시 키

  • type_name: 복잡한 개체의 이름입니다.

  • affinity_key_field_name: 선호도 키 필드의 이름입니다.