필자는 시스템에 커다란 분석 모듈이 있으며이를 위해 vertica를 사용할 계획입니다. 누군가는 우리 앱 (우리 도메인의 모델을 가진 표준 crud 앱)에서 vertica를 사용하여 여러 데이터베이스를 관리하지 말 것을 제안했습니다.비 분석 용 vertica
이 이중 시나리오에 맞습니까?
필자는 시스템에 커다란 분석 모듈이 있으며이를 위해 vertica를 사용할 계획입니다. 누군가는 우리 앱 (우리 도메인의 모델을 가진 표준 crud 앱)에서 vertica를 사용하여 여러 데이터베이스를 관리하지 말 것을 제안했습니다.비 분석 용 vertica
이 이중 시나리오에 맞습니까?
요즘은 흔히 의미있는 대답은 당신이해야 할 일에 달려 있습니다. 일반적으로 RDBMS 시스템의 대용량 데이터 부족으로 인해 '빅 데이터'솔루션이 증가했습니다. '빅 데이터'솔루션은 복잡한 분석과 같은 RDBMS 시스템의 핵심 기능과 경쟁 할 수 없지만 RDBMS 시스템은 대용량 데이터 처리에 적합하지 않습니다. 실용적인 솔루션은 현재 하이브리드 솔루션이어야합니다. Vertica는 일단 데이터가로드되면 좋을 수 있지만 전문가가 아닌 데이터의 비정규 화를 필요로하고로드하기 전에 미리 정렬하여 최상의 성능으로 수행해야합니다. 대용량 데이터의 경우 이는 필요한 리소스를 상당히 추가 할 수 있습니다. 하나의 시스템을 모든 필요에 맞게 사용하면 확실한 이점이 있지만 옵션을 계속 열어 두는 것도 이점입니다.
필자가 취하는 접근법은 새 데이터를 저장 및 색인화 한 다음 필요에 따라 다양한보고/분석 엔진에 특정 피드를 제공하는 것입니다. 이렇게하면 원시 데이터의 수집과 저장이 복잡한 분석 처리와 분리됩니다. 관심이 있으시면 더 자세한 정보를 제공해 드리겠습니다. 이러한 분리는 항상 데이터베이스 시스템에 존재했던 핵심 문제를 해결합니다. 과거에는 '창고 저장, 천천히 신고 또는 천천히 저장, 빨리 신고하지만'둘 다 할 수는 없습니다 '라는 말을 들었습니다. 지난 몇 년 동안 완전한 솔루션을 찾았을 때 일반적으로 '빠른 저장소'작업을 처리하는 많은 NoSQL 제품이 생겨났습니다. 일부 시스템은 메모리 또는 캐시에 데이터를 저장하여 인상적인 쿼리 성능을 제공하지만 대용량 데이터에는 많은 서버가 필요합니다. NoSQL과 SQL 솔루션을 통합 할 수 있고 통합 할 수있을 것으로 믿습니다.
몇 가지 컨텍스트를 제공하기 위해 적어도 10 억 개의 레코드가로드되는 시나리오를 사용합니다. 하루에 1 억 개의 레코드를 다루는 경우 (큰 레코드는 상대적 임), Vertica 접근법으로 충분할 것입니다. 그렇지 않으면 옵션을 확장해야합니다.
고주파 업데이트는 Vertica가 최악의 경우보다 뒤처져있는 곳입니다. 나는 그러한 데이터 모델을 위해 그것을 사용하지 않을 것이다.
알렉 - Vertica에 대한 귀하의 의견에 정중히 도전하고 싶습니다. 로드하기 전에 데이터를 비정규 화하거나 정렬 할 필요가 없습니다. Vertica는 또한 모든 데이터베이스에서 가장 빠른 데이터 로딩 기록을 보유하고 있습니다.
또한 Vertica는 RDBMS뿐만 아니라 복잡한 분석도 할 수 없다고 이야기합니다. Vertica는 RDBMS이므로 다른 RDBMS보다 빠르게 분석을 수행 할 수 있으며 반복해서 증명할 수 있습니다.
숫자만큼, 내 경우에는 약 500 만 개의 레코드를 내 Vertica 클러스터에로드하고 수십억 개의 레코드가 있습니다.
그래서 Yaron -이 정보를 바탕으로 Vertica를 배제하기 전에 꼭 봐야합니다.
Joe - 감사합니다. 매 초마다로드 한 이러한 모든 레코드를 즉시 쿼리 할 수 있었습니까? 아니면 그러한로드에 지연이 있습니까? –
Yaron - Vertica에서로드를 수행하면 커밋이 완료되는 즉시 레코드를 사용할 수 있습니다. 따라서 전체 파일을로드 할 때까지 기다려야합니다. 더 빨리 사용할 수있게하려면 다른 옵션도 있습니다. – Joe
테스트하십시오. 각 유스 케이스는 다릅니다. Vertica가 모든 유스 케이스의 솔루션이라고 가정하면 MongoDB for every use case을 사용하는 것만 큼 나쁘다.
Vertica는 엄청나게 큰 데이터 세트를 분석하고 수평으로 확장하도록 설계된 컬럼 기반의 고성능 분석 데이터베이스입니다. 또한 비용이 많이 들고 관리가 어려우며 문서가 불규칙합니다.올바른 환경에서의 결과는 분명 쉽게할만한 가치가 있습니다.
MySQL은 구조화 된 데이터 간의 관계를 모델링하기 위해 설계된 기존의 RDBMS, 행 지향적이며 단일 노드 규모에서 잘 작동합니다 (많은 회사에서 위대한 성공, 예를 들어 gratia, 페이스 북). 엄청나게 잘 문서화되어 있으며 모든 플랫폼, 언어 또는 프레임 워크에서 작동하며 모든 사람이 사용할 수 있습니다.
내 생각에 Vertica를 직원 주소록 데이터베이스에 사용하는 것은 $ 3000 소송에서 블루 칼라 작업을하는 것과 같습니다. 물론 은으로 작동하지만 작업에 적합한 도구입니까? 어쩌면 이미 Vertica 라이센스가 있고 응용 프로그램에 필수 데이터 어댑터/ORM/etc ...가 있으면 어쩌면 한번 해보십시오. 그것은 여전히 SQL 데이터베이스이므로 그러한 상황에서 정상적으로 작동해야합니다. 최적의 성능과는 달리 목표가 최소한의 프로그래밍이면 Vertica를 전혀 사용하지 않는 이유는 무엇입니까? 더 단순한 것 같은 소리가 더 이상적 일 것입니다. Vertica는 최적화 된 것이 아니기 때문에 일반 CRUD 응용 프로그램 환경에서 더 나은 성능을 제공 할 수도 있고 그렇지 않을 수도 있습니다. 그러나 항상 둘 다 테스트하여 볼 수 있습니다.
Vertiy는 높은 동시성 (분당 많은 작은 트랜잭션)이 많은 문제가 있습니다. MPP 시스템에서 데이터는 클러스터에서 세그먼트 화되며 클러스터 수준의 잠금 (주로 커밋 시간)을 취할 필요가있을 때마다 많은 클러스터 레벨 X 잠금을 확약합니다. 높은 동시성은 DWH 및보고의 사용 사례보다 적기 때문에 Vertica는 완벽합니다. 사건의 OLTP 솔루션의 대부분에서 이 아주 나쁜 선택 나는 요구의 분리를위한 당신의 접근 방식에 대한 자세한을 듣고 싶습니다
감사
가 높은 동시성을 제공해야합니다 (CRM 등 같은). 다른 데이터베이스를 사용합니까? –
나는 통신 사업에서 자란 시스템을 사용합니다. 우리는 현재 BDsafe라고 부릅니다. (일반적인 사용을 위해 출시 된 아직 초기 단계이며 오픈 소스가 될 수도 있습니다.) 기본적으로 CSV 형식으로 레코드를 저장하고 지정된 필드에 외부 인덱스를 만듭니다. 일반적인 내용과 예제를 보려면 [BDsafe] (http://www.dt2pte.com)를 참조하십시오. 오픈 소스가 아니지만 라이센스 비용은 없습니다. 목표는 사람들이 그것을 시도하도록 허용하는 것입니다. 우리는 큰 데이터 영역에서 작업하는 것이 좋은 출발점이라고 생각합니다. –
감사합니다. 매우 흥미로 보입니다. –