기술_Kudu

테이블에 데이터 삽입

구일칠구 2022. 7. 6. 20:21

Impala를 사용하면 표준 SQL 구문을 사용하여 Kudu에 데이터를 삽입 할 수 있습니다.

단일 값 삽입

이 예에서는 단일 행을 삽입합니다.

INSERT INTO my_first_table VALUES (99, "sarah");

이 예에서는 단일 문을 사용하여 3 개의 행을 삽입합니다.

INSERT INTO my_first_table VALUES (1, "john"), (2, "jane"), (3, "jim");

대량으로 삽입

대량으로 삽입 할 때 최소한 세 가지 일반적인 선택 사항이 있습니다. 데이터와 상황에 따라 각각 장단점이있을 수 있습니다.

여러 단일 INSERT문

이 접근 방식은 이해하고 구현하기 쉽다는 장점이 있습니다. Impala는 Kudu의 삽입 성능에 비해 쿼리 시작 비용이 높기 때문에이 접근 방식은 비효율적 일 수 있습니다. 이로 인해 상대적으로 높은 지연 시간과 낮은 처리량이 발생합니다.

INSERT여러 개의 단일 문VALUES

1024 개 이상의 VALUES문 을 포함하는 경우 Impala batch_size는 요청을 Kudu로 보내기 전에 1024 개 (또는 값)의 그룹으로 일괄 처리합니다 . 이 접근 방식은 INSERTImpala 측에서 쿼리 시작 패널티를 상각하여 여러 순차 보다 약간 더 나은 성능 을 발휘할 수 있습니다. 현재 Impala Shell 세션의 배치 크기를 설정하려면 다음 구문을 사용하십시오.set batch_size=10000;

일괄 삽입

Impala와 Kudu의 관점에서 일반적으로 가장 잘 수행되는 접근 방식은 일반적으로 Impala의 SELECT FROM명령문을 사용하여 데이터를 가져 오는 것 입니다.

  1. 데이터가 아직 Impala에없는 경우 한 가지 전략은 TSV 또는 CSV 파일과 같은 텍스트 파일에서 데이터를 가져 오는 것입니다 .
  2. Kudu 테이블을 생성합니다. 기본 키로 지정된 열은 null 값을 가질 수 없습니다.
  3. 다음 예와 같이 원본 데이터가 포함 된 테이블을 쿼리하여 Kudu 테이블에 값을 삽입합니다.
  4. INSERT INTO my_kudu_table SELECT * FROM legacy_data_import_table;

C ++ 또는 Java API를 사용하여 수집

대부분의 경우 적절한 수집 경로는 C ++ 또는 Java API를 사용하여 Kudu 테이블에 직접 삽입하는 것입니다. 다른 Impala 테이블과 달리 API를 통해 Kudu 테이블에 삽입 된 데이터 INVALIDATE METADATA는 다른 Impala 스토리지 유형에 필요한 명령문이나 다른 명령문 없이 Impala에서 쿼리에 사용할 수 있습니다.

INSERT 및 기본 키 고유성 위반

대부분의 관계형 데이터베이스에서 이미 삽입 된 행을 삽입하려고하면 기본 키가 중복되므로 삽입이 실패합니다. 참조 하는 동안 실패 INSERT, UPDATE및 DELETE운영을 . 그러나 Impala는 쿼리에 실패하지 않습니다. 대신 경고를 생성하지만 나머지 insert 문을 계속 실행합니다.

삽입 된 행이 기존 행을 대체하려는 경우 UPSERT대신을 사용할 수 있습니다 INSERT.

실패시 INSERT, UPDATE및 DELETE운영

INSERT, UPDATE및 DELETE문은 전체적으로 트랜잭션으로 간주 될 수 없습니다. 이러한 작업 중 하나가 도중에 실패하면 키가 이미 생성되었거나 (의 경우 INSERT) 레코드가 다른 프로세스 ( UPDATE또는 의 경우)에 의해 이미 수정 또는 제거되었을 수 있습니다 DELETE. 이를 염두에두고 애플리케이션을 설계해야합니다.

테이블 속성 변경

테이블의 속성을 변경하여 주어진 Kudu 테이블과 관련된 Impala의 메타 데이터를 변경할 수 있습니다. 이러한 속성에는 테이블 이름, Kudu 마스터 주소 목록 및 테이블이 Impala (내부)에서 관리되는지 외부에서 관리되는지 여부가 포함됩니다.

'기술_Kudu' 카테고리의 다른 글

Apache Must 관리  (0) 2022.07.07
테이블 삭제  (0) 2022.07.06
SQL 술어 평가를위한 성능 최적화  (0) 2022.07.06
기존 테이블 쿼리  (0) 2022.07.06
Apache Impala와 함께 Apache 사용  (0) 2022.07.06