전제 조건
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 |
모드 캐시 :
|
PROP_CACHE_ATOMICITY_MODE |
int |
캐시 원 자성 모드 :
|
PROP_BACKUPS_NUMBER |
int |
백업 파티션 수 . |
PROP_WRITE_SYNCHRONIZATION_MODE |
int |
쓰기 동기화 모드 :
|
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 |
재조정 모드 :
|
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 |
파티션 손실 정책 :
|
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: 선호도 키 필드의 이름입니다.