타임 스탬프 필드를 기반으로 데이터를 샘플링하고 싶습니다. 나는 엄청난 양의 데이터 파일을 읽으며, 하루에 백만 건이 넘는 레코드를 가지고있다. 매월 여러 파일이 있습니다.필드를 기반으로 한 데이터 샘플링
는 지금은이 데이터를 읽을 수 있지만, 상점, 5 % 또는 10 % MySQL 데이터베이스로, 말한다. 각 데이터 파일의 레코드 수에 대한 사전 지식이 없습니다.
내가 파일에 대한 전체 읽기 데이터의 5 %를 샘플링 할 수있는 방법이 있습니까? 이런 종류의 문제에 대한 표준 통계적 접근법이 있습니까? 아래의 의견에 따라
편집 :이 샘플링 생각하기 전에
는, 나는 두 필드의 키 기반의 파티션과 인덱스를 생성했다 : ID와 날짜를. id 필드는 clientId와 더 비슷합니다. 파티셔닝을하더라도 1 천 5 백만 행의 2 개 필드로 이루어진 그룹은 30-60 분의 범위에서 범죄 시간이 길어질 수 있습니다. 또한 필드별로 그룹 중 하나에 추가 색인을 만들었습니다.
이 보여줄 것입니다 나의 설명 :
SIMPLE 방문 어디에 사용 3ColumnerIndex, 2ColumnIndex 2ColumnIndex (302) const를 7493642을 심판을; filesort 사용
innodb에 4GB의 버퍼 크기를 부여한 후에이 성능을 얻었습니다!
파일에서 각 레코드는 어떤 방식 으로든 포함되어 있습니까? –
예, 각 레코드는 한 줄입니다. 그리고 난 내 자바 코드에서 해당 파일을 읽고 문제가되지 않습니다 청소, 파싱 등을 할, 나는 그것 모두를 읽을 수있는 모든 데이터베이스에 쓸 수 있지만, 모든 개월 동안 데이터를 쓰는 날 가까이 가져옵니다 1 천 5 백만에서 2 천만 건까지 –
그래서 파일을 읽은 후에 읽은 레코드의 수를 알고 있습니까? –