2017-03-22 4 views
0

대용량 CSV 파일을 매일 두어 고객 당 2 백만 로그 데이터가 포함되어 있으므로 CSV로 다양한 그룹 요약을 제공하는 분석 도구를 개발해야합니다. 파일 데이터.2 백만 로그 데이터가 포함 된 대용량 CSV 파일

우리는 Mysql-InnoDB를 사용하여 개발했지만 매우 느리게 실행합니다. 우리는 테이블과 하드웨어에 대한 적절한 인덱싱을 적용했습니다.

이 분석 도구를 사용할 수 있습니까? 아니면 다른 데이터베이스를 확인해야합니까?

각 SQL Select 쿼리에는 단일 테이블에서 결과를 가져 오는 데 15-20 초가 포함됩니다.

+0

2 백만 행에 대해 쿼리를 실행하고 있습니까 아니면 더 큰 테이블입니까? – jastr

답변

1

당신은 삽입 전용 데이터이고 클라이언트에 대한 일부 메트릭을 보여주는 대시 보드를 주로 만들 것이라고 가정합니다.

다른 방법으로이 문제에 접근 할 수 있습니다. CSV 데이터를 SQL 데이터베이스에 직접 저장하는 대신 언어 옵션에 따라 Spark 또는 Spring 일괄 처리 또는 AirFlow를 사용하여 CSV를 먼저 처리 할 수 ​​있습니다. 이렇게하면 저장해야하는 데이터의 양을 줄일 수 있습니다.

고려할 수있는 또 다른 접근 방법은 CSV를 처리하고이를 BigQuery 또는 Redshift와 같은 것으로 푸시하는 것입니다. 이러한 데이터베이스는 대규모 데이터를 처리하고 쿼리하도록 설계되었습니다.

쿼리를 고정 시키려면 Materialized View를 생성하여 대시 보드를 신속하게 구축 할 수 있습니다. 매우 확장 성있는 접근 방식이 아니기 때문에이 방법을 권장하지는 않습니다.

데이터를 먼저 처리하고 필요한 메트릭을 생성하여 SQL에 저장하고 직접 저장하는 대신 대시 보드 위에 데이터를 저장하는 것이 좋습니다.

+0

BigQuery 또는 RedShift는 출력을 빠르게하는 것이 가장 좋습니다. –

+0

맞아요, 그 사용자 정의 대시 보드를 구축하고 사용자는 또한 여러 대시 보드를 만들 수 있습니다. –

+0

Google 또는 AWS에 가입하셨습니까? 나는 그 둘을 비교할만큼 자격이 없다. 결정할 때 사용할 수있는 온라인 벤치 마크가 많이 있습니다. 대부분의 유스 케이스의 경우 비용과 선호도가 모두 낮아진다 고 생각합니다. – Putty