NFS를 통한 파일 사용에서 추가 속도를 위해 MySQL DB 사용으로 서버 팜에서 실행되는 여러 시뮬레이션으로 구성된 회귀 실행으로 구성된 설계 흐름을 이동하고 있습니다. (이 최적화 만있는 관련 흐름이 있으므로 작동 할 수 있음을 알고 있습니다.)
우리는 아마도 1 년에 걸쳐 1000 회 정도의 회귀를 실행할 것입니다. 각각의 약 100K 시뮬레이션, 각 시뮬레이션은 결과 / 런타임 / 몰 기록을 저장합니다.
현재 흐름에서 각 회귀 결과는 별도의 (CSV) 파일에 저장됩니다. 현재 DB의 각 회귀는 동일한 회귀 테이블에 저장되며 모든 회귀의 시뮬레이션에 대한 모든 시뮬레이션 결과는 모두 하나의 sim_results 테이블에 저장됩니다.
현재 흐름의 변경을 최소화하기 위해 각 회귀에 대해 별도의 sim_results 테이블을 만드는 것을 고려하고 싶지만
감사합니다!
SQL 방식은 일반적으로 여러 노드간에 데이터를 분할 (예 : 수평 분할) 할 목적으로 해당 테이블을 분할하는 경우를 제외하고 각각 다른 일련의 행에 해당하는 여러 테이블을 생성하지 않는 것입니다. . 수평 샤딩은 일반적으로 많은주의 사항이있는 복잡한 작업입니다.
그러나 전반적으로 스키마를 설계하는 방법은 적합한 사용 사례와 관련이 있습니다. 특히 한 번에 여러 시뮬레이션에 대해 쿼리를 실행하려는 경우 모든 데이터를 단일 일련의 테이블에 저장하면됩니다. OTOH에 실제로 쿼리 계획이 없다면 처음에 관계형 DB가 필요하지 않을 것입니다.
귀하의 데이터 형식은 확실하지 않지만 많은 양의 데이터가 "분석"되는 일반적인 스키마 설계 중 하나는 스타 스키마 입니다. 위키 백과 페이지는 좋은 읽기입니다.
많은 테이블을 생성하려는 경우 SQLAlchemy의 Table()
구조는 프로그래밍 방식으로 빌드 할 수있는 Python 데이터 구조입니다. Table()
필요에 따라 새 개체 를 만든 다음 호출 하는 함수를 빌드 create()
합니다. 나는 얻기 위해 열심히 일해야했다 회사와 작업 한 오프 이 계획이 가치가 있다면 정말 생각 하는데요, 그래서하지만이 특별한 디자인. 적절하게 구성된 관계형 테이블은 문제없이 수십억 개의 행을 저장할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다