2009-07-31 1 views
2

새 프로젝트부터 시작하겠습니다. NET 응용 프로그램에서 수백 기가의 데이터를 처리해야합니다. 이 프로젝트에 대한 많은 세부 사항을 제공하는 것은 매우 초기 단계입니다. 따라서, 매우 실시간 기가 바이트 데이터 처리

  • 스케일링, 같은 테이블에 읽어 클라이언트가 매우 자주 데이터베이스 서버의 확장을 주장으로 매우 중요하다의

    1. 쓰기의 제비와 제비, 애플리케이션 서버뿐만 아니라
    2. : 일부 개요는 다음과됩니다 집계 쿼리의 측면에서
    3. 예견, 많은 및 사용 많이 하 수도는 속성이 많이 포함 된 데이터의 각 행은 내가/제안하고

    처리 할

  • 을 구현할 수있다 노드에서 모든 분석 과정에 대한 지속성

    1. 를 사용하여 분산 해시 테이블 정렬 (S3되지하지만 사내 하나)
    2. 사용 하둡/하이브가 좋아 (.NET의 모든 교체?) : ving 해결책으로 다음
    3. Impelement GUI ASP.NET/Silverlight에서

    너희들은 어떻게 생각하세요 (필수 곳 ajaxification 많이 포함)? 내가 여기서 말이야?

  • +0

    "very realtime"은 유용한 설명이 아닙니다. 빙하의 움직임을 추적해야하는 경우 '실시간'은 '정말 느립니다'. –

    답변

    2

    당신의 목표는 성능, 유지 보수성, 성공 확률 향상, 최첨단입니까?

    너무 빨리 관계형 데이터베이스를 포기하지 마십시오. 100 달러짜리 외장형 하드 드라이브와 샘플 데이터 생성기 (RedGate 's good)를 사용하면 그러한 종류의 작업 부하를 아주 쉽게 시뮬레이션 할 수 있습니다.

    비 관계형 및 클라우드 데이터베이스에서 작업 부하를 시뮬레이션하면 자신의 도구를 작성할 수 있습니다.

    +0

    제 의도는 비 관계형 데이터베이스를 사용하고 쿼리를 분산 처리하는 것이 얼마나 좋은지를 보는 것입니다. 이 시나리오에서 관계형 데이터베이스 나 아키텍처가 어떻게 작동하는지 모르겠습니다. – asyncwait

    +1

    그런 다음 현실적인 데이터로 테스트 하네스를 조합하는 것이 좋습니다. 다른 것은 그냥 야생의 추측과 성숙한 최적화입니다. 비슷한 작업 부하를 가진 대기업을 추적하고 archtitecture에 공개 정보가 있는지 확인하는 것도 좋습니다. Digg.com은 mysql에서 실행되며 google은 분산 된 DB에서 실행됩니다. 하지만 구글은 아마도 초당 TB의 데이터를 처리하고있을 것입니다. 우리는 당신이 프로젝트가 성공할 수 있기를 바랄뿐입니다. – MatthewMartin

    +0

    나는 너와 함께있다 ... – asyncwait

    2

    이 데이터웨어 하우스의 특징이다

    "예견는 집계 쿼리의 측면에서 많은 및 사용의 많은이 구현 될 수있다."

    다음은 DW 처리의 트릭입니다.

    1. 데이터는 FLAT입니다. 사실과 치수. 대부분로드되어 업데이트되지 않으므로 최소 구조입니다.

    2. 집계를 수행하려면 모든 검색어가 간단한 SELECT SUM() or COUNT() FROM fact JOIN dimension GROUP BY dimension attribute이어야합니다. 모든 쿼리가이 형식을 갖도록이 작업을 올바르게 수행하면 성능이 매우 우수 할 수 있습니다.

    3. 집계 할 때까지 데이터를 플랫 파일에 저장할 수 있습니다. 그런 다음 사람들이 실제로 사용하려는 데이터를로드하고 마스터 데이터 세트에서 "데이터 마트"를 만듭니다.

    아무것도 간단한 플랫 파일보다 빠른 없다. 집계 및보고를 위해 RDBMS 데이터 마트에로드되는 (필요한 경우) 테라 바이트의 플랫 파일을 처리하는 데 복잡한 작업이 필요하지 않습니다.

    RDBMS의 도구를 사용하면 간단한 차원 및 사실 테이블의 대량 대량로드가 매우 빠를 수 있습니다.

    초고속 플랫 파일 처리를 사용하여 모든 PK 및 FK를 사전 할당 할 수 있습니다. 이렇게하면 대량로드가 훨씬 간단 해집니다.

    랄프 킴볼의 데이터웨어 하우스 툴킷 서적을 받으십시오.

    0

    "동일한 테이블에 많은 양의 읽기 및 쓰기, 매우 실시간"- 무결성이 중요합니까? 그 중 일부는 트랜잭션으로 작성합니까? 그렇다면 RDBMS를 사용하십시오.

    스케일링이 까다로울 수는 있지만 클라우드 컴퓨팅과 관련된 문제는 아닙니다. DBMS의 복제는 일반적으로 웹 애플리케이션 클러스터,로드 밸런서 등과 함께 트릭을 수행합니다.

    1

    최신 데이터베이스는 기가 바이트 단위로 잘 작동합니다. RDBMS가 파괴되는 경향이있는 테라 바이트와 페타 바이트가 될 때입니다. 당신이 그런 종류의 짐을 예견한다면, HBase 나 Cassandra와 같은 것은 의사가 주문한 것일 수 있습니다. 그렇지 않다면, 데이터베이스를 튜닝하고 캐싱 레이어 (memached)를 삽입하십시오.

    0

    RDBMS에 무결성을 유지할 책임이 있습니다. 이 프로젝트를 마치 데이터웨어 하우스처럼 취급하십시오. 모든 것을 깨끗하게 유지하려면 제 3 자 툴을 많이 사용하지 않아도됩니다. 대신 RDBMS 도구를 사용하십시오. RDBMS에있는 모든 도구를 사용하고 잘 설계된 물리적 데이터 모델 (색인, 파티션 등)의 잘 작성된 저장 프로 시저를 사용하여 Db에서 모든 데이터를 추출하는 GUI를 작성하십시오.

    Teradata는 많은 양의 데이터를 처리 할 수 ​​있으며 확장 가능합니다.