다음을 통해 공유


블룸 필터 인덱스

참고 항목

Photon 지원 컴퓨팅 및 Databricks Runtime 12.2 이상을 사용하는 경우 예측 I/O는 읽기 성능을 위해 블룸 필터를 능가합니다. 예측 I/O란?을 참조하세요.

Databricks Runtime 13.3 이상에서 Databricks는 델타 테이블 레이아웃에 클러스터링 사용하는 것이 좋습니다. Delta 테이블에 Liquid 클러스터링 사용을 참조하세요.

Databricks는 이러한 기능을 지원하지 않는 컴퓨팅을 사용하는 경우에만 블룸 필터를 사용하는 것이 좋습니다.

블룸 필터 인덱스는 특히 임의의 텍스트가 포함된 필드의 경우 선택한 열에서 데이터를 건너뛸 수 있도록 하는 공간 효율적인 데이터 구조입니다.

Bloom 필터 인덱스 작동 방식

Azure Databricks Bloom 필터 인덱스는 각 데이터 파일에 대한 데이터 건너뛰기 인덱스로 구성됩니다. Bloom 필터 인덱스는 열 값이 파일에 없거나 파일에 있을 수 있는지 확인하는 데 사용할 수 있습니다. 파일을 읽기 전에 Azure Databricks는 인덱스 파일을 검사, 인덱스가 파일이 데이터 필터와 일치할 수 있음을 나타내는 경우에만 파일을 읽습니다.

Bloom 필터는 다음 입력 데이터 형식bytefloatshortlongstringintdoubledatetimestamp을 사용하는 열을 지원합니다. Null은 블룸 필터에 추가되지 않으므로 null 관련 필터는 데이터 파일을 읽어야 합니다. Azure Databricks는 and, or, in, equalsequalsnullsafe 데이터 원본 필터를 지원합니다. 블룸 필터는 중첩 열에서 지원되지 않습니다.

구성 및 참조

다음 구문을 사용하여 Bloom 필터를 사용하도록 설정합니다.

CREATE BLOOMFILTER INDEX
ON TABLE table_name
FOR COLUMNS(column_name OPTIONS (fpp=0.1, numItems=5000))

구문 세부 정보는 CREATE BLOOM FILTER INDEXDROP BLOOM FILTER INDEX를 참조하세요.

Bloom 필터 작업을 사용하지 않도록 설정하려면 세션 수준 spark.databricks.io.skipping.bloomFilter.enabled 구성을 .로 false설정합니다.

블룸 필터 인덱스 목록 표시

인덱스 목록을 표시하려면 다음을 실행합니다.

spark.table("<table-with-indexes>").schema.foreach(field => println(s"${field.name}: metadata=${field.metadata}"))

예시:

색인 표시