2012-08-12 2 views
1

필자는 시스템에 커다란 분석 모듈이 있으며이를 위해 vertica를 사용할 계획입니다. 누군가는 우리 앱 (우리 도메인의 모델을 가진 표준 crud 앱)에서 vertica를 사용하여 여러 데이터베이스를 관리하지 말 것을 제안했습니다.비 분석 용 vertica

이 이중 시나리오에 맞습니까?

답변

1

요즘은 흔히 의미있는 대답은 당신이해야 할 일에 달려 있습니다. 일반적으로 RDBMS 시스템의 대용량 데이터 부족으로 인해 '빅 데이터'솔루션이 증가했습니다. '빅 데이터'솔루션은 복잡한 분석과 같은 RDBMS 시스템의 핵심 기능과 경쟁 할 수 없지만 RDBMS 시스템은 대용량 데이터 처리에 적합하지 않습니다. 실용적인 솔루션은 현재 하이브리드 솔루션이어야합니다. Vertica는 일단 데이터가로드되면 좋을 수 있지만 전문가가 아닌 데이터의 비정규 화를 필요로하고로드하기 전에 미리 정렬하여 최상의 성능으로 수행해야합니다. 대용량 데이터의 경우 이는 필요한 리소스를 상당히 추가 할 수 있습니다. 하나의 시스템을 모든 필요에 맞게 사용하면 확실한 이점이 있지만 옵션을 계속 열어 두는 것도 이점입니다.

필자가 취하는 접근법은 새 데이터를 저장 및 색인화 한 다음 필요에 따라 다양한보고/분석 엔진에 특정 피드를 제공하는 것입니다. 이렇게하면 원시 데이터의 수집과 저장이 복잡한 분석 처리와 분리됩니다. 관심이 있으시면 더 자세한 정보를 제공해 드리겠습니다. 이러한 분리는 항상 데이터베이스 시스템에 존재했던 핵심 문제를 해결합니다. 과거에는 '창고 저장, 천천히 신고 또는 천천히 저장, 빨리 신고하지만'둘 다 할 수는 없습니다 '라는 말을 들었습니다. 지난 몇 년 동안 완전한 솔루션을 찾았을 때 일반적으로 '빠른 저장소'작업을 처리하는 많은 NoSQL 제품이 생겨났습니다. 일부 시스템은 메모리 또는 캐시에 데이터를 저장하여 인상적인 쿼리 성능을 제공하지만 대용량 데이터에는 많은 서버가 필요합니다. NoSQL과 SQL 솔루션을 통합 할 수 있고 통합 할 수있을 것으로 믿습니다.

몇 가지 컨텍스트를 제공하기 위해 적어도 10 억 개의 레코드가로드되는 시나리오를 사용합니다. 하루에 1 억 개의 레코드를 다루는 경우 (큰 레코드는 상대적 임), Vertica 접근법으로 충분할 것입니다. 그렇지 않으면 옵션을 확장해야합니다.

+0

가 높은 동시성을 제공해야합니다 (CRM 등 같은). 다른 데이터베이스를 사용합니까? –

+0

나는 통신 사업에서 자란 시스템을 사용합니다. 우리는 현재 BDsafe라고 부릅니다. (일반적인 사용을 위해 출시 된 아직 초기 단계이며 오픈 소스가 될 수도 있습니다.) 기본적으로 CSV 형식으로 레코드를 저장하고 지정된 필드에 외부 인덱스를 만듭니다. 일반적인 내용과 예제를 보려면 [BDsafe] (http://www.dt2pte.com)를 참조하십시오. 오픈 소스가 아니지만 라이센스 비용은 없습니다. 목표는 사람들이 그것을 시도하도록 허용하는 것입니다. 우리는 큰 데이터 영역에서 작업하는 것이 좋은 출발점이라고 생각합니다. –

+0

감사합니다. 매우 흥미로 보입니다. –

4

고주파 업데이트는 Vertica가 최악의 경우보다 뒤처져있는 곳입니다. 나는 그러한 데이터 모델을 위해 그것을 사용하지 않을 것이다.

2

알렉 - Vertica에 대한 귀하의 의견에 정중히 도전하고 싶습니다. 로드하기 전에 데이터를 비정규 화하거나 정렬 할 필요가 없습니다. Vertica는 또한 모든 데이터베이스에서 가장 빠른 데이터 로딩 기록을 보유하고 있습니다.

또한 Vertica는 RDBMS뿐만 아니라 복잡한 분석도 할 수 없다고 이야기합니다. Vertica는 RDBMS이므로 다른 RDBMS보다 빠르게 분석을 수행 할 수 있으며 반복해서 증명할 수 있습니다.

숫자만큼, 내 경우에는 약 500 만 개의 레코드를 내 Vertica 클러스터에로드하고 수십억 개의 레코드가 있습니다.

그래서 Yaron -이 정보를 바탕으로 Vertica를 배제하기 전에 꼭 봐야합니다.

+0

Joe - 감사합니다. 매 초마다로드 한 이러한 모든 레코드를 즉시 쿼리 할 수 ​​있었습니까? 아니면 그러한로드에 지연이 있습니까? –

+0

Yaron - Vertica에서로드를 수행하면 커밋이 완료되는 즉시 레코드를 사용할 수 있습니다. 따라서 전체 파일을로드 할 때까지 기다려야합니다. 더 빨리 사용할 수있게하려면 다른 옵션도 있습니다. – Joe

1

테스트하십시오. 각 유스 케이스는 다릅니다. Vertica가 모든 유스 케이스의 솔루션이라고 가정하면 MongoDB for every use case을 사용하는 것만 큼 나쁘다.

Vertica는 엄청나게 큰 데이터 세트를 분석하고 수평으로 확장하도록 설계된 컬럼 기반의 고성능 분석 데이터베이스입니다. 또한 비용이 많이 들고 관리가 어려우며 문서가 불규칙합니다.올바른 환경에서의 결과는 분명 쉽게할만한 가치가 있습니다.

MySQL은 구조화 된 데이터 간의 관계를 모델링하기 위해 설계된 기존의 RDBMS, 행 지향적이며 단일 노드 규모에서 잘 작동합니다 (많은 회사에서 위대한 성공, 예를 들어 gratia, 페이스 북). 엄청나게 잘 문서화되어 있으며 모든 플랫폼, 언어 또는 프레임 워크에서 작동하며 모든 사람이 사용할 수 있습니다.

내 생각에 Vertica를 직원 주소록 데이터베이스에 사용하는 것은 $ 3000 소송에서 블루 칼라 작업을하는 것과 같습니다. 물론 으로 작동하지만 작업에 적합한 도구입니까? 어쩌면 이미 Vertica 라이센스가 있고 응용 프로그램에 필수 데이터 어댑터/ORM/etc ...가 있으면 어쩌면 한번 해보십시오. 그것은 여전히 ​​SQL 데이터베이스이므로 그러한 상황에서 정상적으로 작동해야합니다. 최적의 성능과는 달리 목표가 최소한의 프로그래밍이면 Vertica를 전혀 사용하지 않는 이유는 무엇입니까? 더 단순한 것 같은 소리가 더 이상적 일 것입니다. Vertica는 최적화 된 것이 아니기 때문에 일반 CRUD 응용 프로그램 환경에서 더 나은 성능을 제공 할 수도 있고 그렇지 않을 수도 있습니다. 그러나 항상 둘 다 테스트하여 볼 수 있습니다.

1

Vertiy는 높은 동시성 (분당 많은 작은 트랜잭션)이 많은 문제가 있습니다. MPP 시스템에서 데이터는 클러스터에서 세그먼트 화되며 클러스터 수준의 잠금 (주로 커밋 시간)을 취할 필요가있을 때마다 많은 클러스터 레벨 X 잠금을 확약합니다. 높은 동시성은 DWH 및보고의 사용 사례보다 적기 때문에 Vertica는 완벽합니다. 사건의 OLTP 솔루션의 대부분에서 이 아주 나쁜 선택 나는 요구의 분리를위한 당신의 접근 방식에 대한 자세한을 듣고 싶습니다

감사