postgresql 데이터베이스 timescaledb 타 이 밍 라 이브 러 리 에서 빅 데이터 계량 표를 초 표 로 변환 하 는 문제
요 며칠 작업 할 때 timescaledb 타 이 밍 라 이브 러 리 에 일부 빅 데이터 양의 표 가 초 표 가 아니 라 는 것 을 발 견 했 습 니 다.그 당시 에 라 이브 러 리 를 만 들 때 삽입,조회 효율 에 영향 을 주지 않 았 기 때문에 초 표 로 바 꿔 야 할 것 같 습 니 다.
업무 상의 이유 로 일부 내용 을 비밀 로 처리 하 였 다.
새 테이블 생 성
우선 timescaledb 타 이 밍 라 이브 러 리 에 초 표를 만 들 려 면 데이터 가 없어 야 하기 때 문 입 니 다.
그래서 첫 번 째 단 계 는 원래 표 와 똑 같은 시 계 를 만 드 는 것 입 니 다.cs)표 구 조 를 직접 복사 할 수도 있 고 도구 로 표 구 조 를 복사 할 수도 있다.
새 시 계 를 초 시계 로 바꾸다.
새 시 계 를 초 시계 로 바 꾸 고 7 일 1 분 구 로 바 꿉 니 다.
-- 7
SELECT create_hypertable(' _cs', 'alarm_time', chunk_time_interval => INTERVAL '7 day');
--
CREATE INDEX " _cs_create_time_idx" ON "hrmw"." _cs" USING btree (
"create_time" "code"." " DESC NULLS FIRST
);
3 삽입 데이터1.데이터 양 이 많 지 않 은 경우 직접 삽입 가능
INSERT into _cs SELECT * from ;
2.데이터 양 이 많 으 면 하루 에 삽입 하거나 한 달 또는 몇 달 에 같이 삽입 할 수 있 습 니 다.
INSERT into _cs SELECT * from where alarm_time >= '2020-9-1';
INSERT into _cs SELECT * from where alarm_time >= '2020-10-1' and alarm_time < '2020-11-1' ;
3.함수 활용(저장 과정)표 데이터 의 양 이 너무 많 고 하루 에 삽입 하면 저장 과정 을 활용 할 수 있 습 니 다(postgresql 데이터 베 이 스 를 함수 라 고 합 니 다).
다음은 내 가 쓴 함수 다.참고 하 다.
CREATE
OR REPLACE PROCEDURE "hrmw"."sp_into_ _pt" ( ) AS $BODY$ BEGIN
--
DECLARE --
target_text TEXT;
sqltext TEXT;
sqltext1 TEXT;
sqltext2 TEXT;
rd record;
nloop INT;
isexist TEXT;
datestr TEXT;
begindate TEXT;
n INT;
BEGIN
--
sqltext := 'select to_char(min(alarm_time),''yyyy-mm-dd'') datestr from tb_hrmw_moni_target';
EXECUTE sqltext INTO begindate;
n := date_part( 'day', now( ) - begindate :: DATE );
--enddate:=(to_char(now(),'yyyy-mm-dd'))::text;
FOR nloop IN 0..n
LOOP
datestr := ( begindate :: DATE + nloop ) :: TEXT;
sqltext2 := '
insert into _cs
select
1,
code,
2,
alarm_time,
3,
4
from
where alarm_time >= ''' || datestr || ' 00:00:00''
and alarm_time <= ''' || datestr || ' 23:59:59''
';
EXECUTE sqltext2;
COMMIT;
END loop;
RETURN;
END;
END $BODY$ LANGUAGE plpgsql
효과모드timescaledb_내부 아래 가 파 티 션 이에 요.
postgresql 데이터베이스 timescaledb 타 이 밍 라 이브 러 리 에서 빅 데이터 계량 표를 초 표 로 변환 하 는 글 을 소개 합 니 다.더 많은 postgresql 데이터베이스 timescaledb 타 이 밍 라 이브 러 리 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
org.postgresql.util.PSQLException: FATAL: sorry, too many clients alreadyI am trying to connect to a Postgresql database, I am getting the following Error: You opened up more than the allowed l...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.