DC.js-Crossfilter 소개

Crossfilter는 다차원 데이터 셋입니다. 백만 개 이상의 레코드를 포함하는 데이터 세트와의 매우 빠른 상호 작용을 지원합니다.

기본 컨셉

Crossfilter는 crossfilter 네임 스페이스 아래에 정의됩니다. 시맨틱 버전 관리를 사용합니다. 아래에 정의 된 과일 모음이로드 된 교차 필터 객체를 고려하십시오.

var fruits = crossfilter ([
   { name: “Apple”, type: “fruit”, count: 20 },
   { name: “Orange”, type: "fruit”, count: 10 },
   { name: “Grapes”, type: “fruit”, count: 50 },
   { name: “Mango”,  type: “fruit”, count: 40 }
]);

그룹의 전체 레코드를 수행해야하는 경우 다음 함수를 사용할 수 있습니다.

var count = fruits.groupAll().reduceCount().value();

특정 유형으로 필터링하려면-

var filtering = fruits.dimension(function(d) { return d.type; });
filtering.filter(“Grapes”)

마찬가지로 Crossfilter로 그룹화를 수행 할 수 있습니다. 이를 위해 다음 함수를 사용할 수 있습니다.

var grouping = filtering.group().reduceCount();
var first = grouping.top(2);

따라서 Crossfilter는 매우 빠르도록 제작되었습니다. 필터가 적용될 때 그룹을 다시 계산하려면 증분 계산합니다. 교차 필터 치수는 매우 비쌉니다.

Crossfilter API

주목할만한 Crossfilter API를 자세히 살펴 보겠습니다.

  • crossfilter([records])− 새로운 교차 필터를 구성하는 데 사용됩니다. 레코드가 지정되면 동시에 지정된 레코드를 추가합니다. 레코드는 JavaScript 객체 또는 기본 요소의 모든 배열이 될 수 있습니다.

  • crossfilter.add(records) − 지정된 레코드를 교차 필터에 추가합니다.

  • crossfilter.remove() − 교차 필터에서 현재 필터와 일치하는 모든 레코드를 제거합니다.

  • crossfilter.size() − 교차 필터의 레코드 수를 반환합니다.

  • crossfilter.groupAll() − 모든 레코드를 그룹화하여 단일 값으로 축소하는 기능입니다.

  • crossfilter.dimension(value) − 지정된 값 접근 자 함수를 사용하여 새로운 차원을 구성하는 데 사용됩니다.

  • dimension.filter(value) − 차원의 일치 값에 대한 레코드를 필터링하는 데 사용되며 차원을 반환합니다.

  • dimension.filterRange(range) − 범위 [0]보다 크거나 같고 범위 [1]보다 작은 차원 값에 대한 레코드를 필터링합니다.

  • dimension.filterAll() −이 차원에서 모든 필터를 지 웁니다.

  • dimension.top(k) −이 차원의 자연스러운 순서에 따라 상위 k 개 레코드를 포함하는 새 배열을 반환하는 데 사용됩니다.

  • dimension.bottom(k) −이 차원의 자연 순서에 따라 하위 k 개 레코드를 포함하는 새 배열을 반환하는 데 사용됩니다.

  • dimension.dispose() − 교차 필터에서 치수를 제거하는 데 사용됩니다.

다음 장에서 우리는 D3.js에 대해 간략하게 이해할 것입니다.