2012-09-27 2 views
0

외부 소스에서 테이블에 대한 일일 덤프 (학생 테이블 유지 가능)가 나타납니다. 테이블이 잘리고 새 데이터로 업데이트되는 동안 가동 중지 시간을 줄이기 위해이 테이블 (students_1 및 students_2)의 두 복사본을 유지할 계획입니다. 둘 다 교대로 매일 학생 모델과 매핑해야합니다. 따라서 오늘 내가 students_1의 데이터를 사용하고 있다면 내일, 데이터가 students_2에 입력되면이 데이터로 원활하게 전환해야합니다.레일즈 - 핫 스왑 테이블

내 질문은 입니다. 1)이 방법이 좋습니까? 아니면 더 좋은 방법이 있습니까? 2) 핫 스와핑 테이블의 경우 사용중인 현재 테이블을 나타내는 파일을 유지 한 다음이 특정 파일을 읽는 방법을 통해 set_table_name을 유지하면됩니까? 보다 우아한 솔루션이 있습니까?

답변

0

데이터로드 전략의 일환으로 할 수 있습니다. 테이블 이름을 저장하거나 비표준 테이블 이름을 사용하지 않아도됩니다. 데이터로드가 완료되면 대신 테이블 이름 바꾸기 명령을 실행합니다.이 명령은 원자 적으로 수행되므로 앱을 중단해서는 안됩니다.

RENAME TABLE students TO students_secondary_temp, students_secondary TO students, students_secondary_temp TO students_secondary;