2017-05-17 2 views
0

적색 변이의 각 테이블에 마지막으로 쓰는 쿼리를 설정하여 데이터가 얼마나 오래 상태인지를 모니터링하고 싶습니다. 각 테이블은 created_at 필드가, 나는 pg_table_def를 통해 모든 테이블 이름을 당길 수 있지만, Redshift에 동적 SQL을 설정하는 방법이 없습니다 (예 : SELECT max(created_at) FROM {table}).적색 변이 테이블에서 마지막 업데이트 타임 스탬프 받기

내가 다른 관리자 테이블과 뷰를 통해 다이빙을했지만 아무것도 이 문제를 해결하는 것으로 보입니다.이 문제를 해결하는 데 도움이되는 사람은 누구입니까?

+0

테이블 이름 목록을 쿼리 한 다음 반복하여 각 테이블에 대한 쿼리를 만들려면 응용 프로그램을 작성해야합니다. 파이썬에서는 단지 몇 줄의 코드가 될 것입니다. –

+0

이 작업을 동적으로 수행해야합니까? 테이블의 고정 된 목록이라면보기에서 여러 select 문을 결합 할 수 있습니다. – Nathan

+0

@Nathan 지금 당장 수정되었지만 앞으로 팀을 추가/삭제하게 될 것이며 계속 업데이트하지 않을 것입니다. – ScottieB

답변

0

각각에 LAST_UPDATED 열을 사용하는 테이블의 마지막 액세스 시간을 업데이트하는 것과 비슷한 요구 사항이있었습니다. 테이블을 완성한 방법은 다음과 같습니다.

UPDATE UPDATION_RECORD_TABLE SET LAST_MODIFIED = (SELECT MAX(LAST_UPDATED) FROM %s) WHERE TABLE_NAME = '%s'; 

여기에서 UPDATION_RECORD_TABLE은 테이블의 이름과 마지막 업데이트 날짜라는 두 개의 열이있는 테이블입니다. (pyscopg2 사용) 파이썬 코드를 사용하여 실행 위의 SQL 쿼리는 값이 %s은 내가이 도움이 SELECT table_name FROM information_schema.tables

희망을 사용하여 이미 가져온 테이블의 목록을 통해 반복 한 후, 테이블 이름으로 대체 할 수있다.