누구든지 일반적인 지침 (시행 착오를 넘어)이 있는지 알아야하며, 다양한 유형의 쿼리에 대해 최적의 파티셔닝/인덱싱을위한 훌륭한 전략을 정의해야합니다. 그린 플럼?Greenplum DB에서 파티셔닝 전략을 선택하는 것이 더 좋습니다. [Big Data]
Greenplum에는 관리자 가이드에 대한 조언이 몇 개 있습니다.하지만 진실은 postgres 문서의 사본을 거의 복사하는 것이고 일부는 조언이 분명하지만 (IE : 테이블이 너무 커 메모리),이를 달성하기위한 좋은 전략을 정의하는 것만으로는 충분하지 않습니다.
일반적으로 Greenplum 데이터베이스는 매우 큰 테이블 (수백 GB 이상)을 가지고 있으며 하드웨어는 이러한 종류의 사용을 위해 특별히 선택되지만 대부분의 경우 실제로 큰 데이터베이스 (IE : 한 번 60 개 필드 테이블과 2 억 개 이상의 행을 가진 데이터베이스를 보유하고 있었으며 하루에 4-8 백만 개의 레지스트리가 증가했습니다.
예상되는 범위를 거의 동일한 크기 (예 : 날짜 범위)로 구분하여 선택하는 것과 같은 적절한 파티션을 선택하는 몇 가지 기술이 있음을 알고 있습니다. 그러나 인덱스에 의존하려고하는 다른 데이터베이스의 경우에도 Greenplum은 인덱스가 전혀 사용되지 않도록 임의의 페이지 비용과 같은 일부 설정에 더 큰 가중치를 부여하여 완전히 실망시키지 않는다는 사실도 있습니다.
그러나 이것이 완전히 역효과를내는 상황을 읽었습니다. 테이블에 192 개가 넘을 때까지 분할하지 말아야 할 GP에 따르면 64GB 램 각각 3 개의 노드가 있다고 가정 해보십시오.하지만 인덱스가 사용되지 않으므로 노드 당 64gb까지 스캔 할 수 있습니다. --- 이것은 여전히 빠르지 만 인덱스 사용을 강요하면 20 초에서 수 밀리 초로 내려갈 수 있습니다.
또 다른 알려진 경우는 분할 할 때 오버 헤드로 인해 쿼리가 훨씬 느려집니다.
그래서, 다시 원래의 질문에 :
사람이 당신의 분할/인덱싱 전략을 정의하는 방법에 대한 좋은 회사 조언이 있습니까?
일부 ETL의 경우 소스로부터의 테스트 쿼리가 절반에서 최대 1 시간이 걸릴 수 있으므로 추적 및 오류로 인해 생산성이 크게 저하됩니다.
감사합니다.