그린마스크 0.2.0 - 0.2.5 릴리스

게시일2024-12-12작성: 사설 토토.io
관련 오픈 소스

PostgreSQL 데이터베이스 익명화 및 합성 데이터 생성 도구

이 릴리스는 사설 토토의 기능을 크게 확장하고 데이터베이스 보안, 데이터 익명화 및 일상적인 작업을 위한 간단하고 확장 가능하며 안정적인 솔루션으로 전환하는 중요한 이정표를 표시합니다. 우리의 목표는 포괄적인 동적 스테이징 환경과 강력한 데이터 보안의 기반이 되는 핵심 시스템을 구축하는 것입니다.

이러한 업데이트는 데이터베이스 하위 설정, pgzip 지원, 토폴로지 순서 복원 및 리팩터링된 변환기와 같은 새로운 기능을 도입하여 Greenmask의 유연성을 크게 향상시켜 다양한 비즈니스 요구를 충족시킵니다. 또한 다양한 수정 및 개선 사항이 포함되어 있습니다.

그린마스크 개요

사설 토토는 논리적 데이터베이스 백업 덤핑, 익명화, 합성 데이터 생성 및 복원을 위해 설계된 강력한 오픈 소스 유틸리티입니다. 상태 비저장이며 데이터베이스 스키마를 변경할 필요가 없습니다. 이는 사용자 정의가 가능하고 기존 PostgreSQL 유틸리티와 역호환되며 빠르고 안정적으로 설계되었습니다.

다음에 적합합니다:

  • 백업 및 복원: 논리적 백업, 잘린 후 테이블 복원, pg_dump 및 pg_restore 교체와 같은 일상 작업을 쉽게 간소화합니다.
  • 익명화 및 데이터 마스킹: 백업을 익명화하고 변환하여 스테이징 환경 설정 및 분석 작업을 단순화하고 일관되고 안전한 데이터를 더 빠르게 보장합니다.

그린마스크 켜짐GitHub

주목할만한 변화

  • PostgreSQL 17 지원 - PostgreSQL 17을 지원하도록 수정된 이식된 라이브러리

  • 데이터베이스 하위 집합- 데이터베이스의 하위 집합을 정의하여 덤프 크기를 축소할 수 있는 새로운 기능(#110). 이는 다목적으로 강력하며 특히 테스트 및 개발 환경에 유용합니다. 다음을 지원합니다:

    • 다음에 대한 참조NULL 값- NULL 값이 있는 FK 참조에 대한 LEFT JOIN 쿼리를 생성하여 하위 집합에 포함합니다.
    • 지원가상 참조(가상 외래 키) - 하위 집합 종속성 그래프에 사용될 Greenmask에서 논리적 FK를 생성합니다. 열이나 표현식에 대해 가상 참조를 정의하여 JSON 등에서 값을 가져올 수 있습니다.
    • 지원순환 참조- 사설 토토가 자동으로 해결됩니다. 재귀 쿼리를 생성하여 하위 집합의 순환 종속성을 제거합니다. 쿼리는 순환 종속성에서 수집된 데이터의 일관성을 보장하는 하위 집합의 무결성 검사를 통해 생성됩니다.
    • 다음을 포함한 문서로 완전히 포함됨문제 해결그리고.
    • 둘 이상의 열(또는 표현식)이 있는 FK 및 PK를 지원합니다.
    • 하나의 강력한 연결 구성요소(SCC)에서 다중 사이클 분해능지원됨 - Greenmask는 단일 주기이든 다중 주기이든 SCC에 대한 재귀 쿼리를 생성하여 하위 집합 시스템을 모든 데이터베이스 스키마에 보편적으로 만듭니다.
    • 다형성 관계 지원- 다음을 정의할 수 있습니다.다형성 참조가 있는 테이블에 대한 가상 참조사용 중polymorphic_exprs속성을 지정하고 사설 토토를 사용하여 해당 테이블에 대한 하위 집합을 생성합니다.
  • 변환 조건- 지정된 조건이 충족되는 경우에만 정의된 변환을 실행합니다.#133

  • 변환 상속- 분할된 테이블 및 외래 키가 있는 테이블에 대한 변환 상속. 한 번 정의하면 모두에 적용됩니다. [#229]
  • pgzip더 빠른 지원압축그리고압축해제— 설정--pgzip병렬 압축을 통해 덤프 및 복원 프로세스의 속도를 높일 수 있습니다. 일부 테스트에서는 덤프 및 복원 작업이 최대 5배 더 빠른 것으로 나타났습니다.
  • 토폴로지 순서로 복원- 이 플래그는 종속 테이블이 복원될 때까지 종속 테이블이 복원되지 않도록 합니다. 이는 전체 테이블이 복원될 때까지 기다리지 않고 가능한 한 즉시 오류 알림을 받고 싶을 때 유용합니다.
  • 형식 삽입복원 - 유연한 복원 프로세스를 위해 Greenmask는 이제 다음에서 데이터 복원을 지원합니다.삽입형식. 다음을 기반으로 삽입 문을 생성합니다.복사덤프의 기록입니다. 이 기능을 사용하기 위해 데이터를 다시 덤프할 필요는 없습니다. 이는에서 정의될 수 있습니다.복원명령. 와 관련된 새로운 기능 목록삽입형식:

    • 생성삽입다음과 같은 진술충돌 시 아무것도 하지 않음플래그인 경우 절--on-충돌-아무것도 하지 않음설정되었습니다.
    • 오류 제외 목록구성에서 특정 오류를 건너뛰고 덤프에서 후속 행을 계속 삽입합니다.
    • 사용 사례 -증분 덤프 및 복원논리적 데이터용. 예를 들어 데이터베이스가 있고 다른 소스에서 주기적으로 데이터를 삽입하려는 경우 이를 데이터베이스 하위 집합 및 변환과 함께 사용하여 대상 데이터베이스를 따라잡을 수 있습니다.
  • 데이터 일괄 복원 복원 (#173) - 기본적으로 COPY 프로토콜은 트랜잭션 커밋 시에만 오류를 반환합니다. 이 동작을 재정의하려면--배치 크기11837_12000

  • 소개됨 keep_null매개변수RandomPerson변압기.

  • 변환기에 동적 매개변수 도입

    • 이제 대부분의 변환기는 해당되는 경우 동적 매개변수를 지원합니다.
    • 동적 매개변수는 엄격하게 적용됩니다. 값을 다른 유형으로 캐스팅해야 하는 경우 Greenmask는 다음을 통해 액세스할 수 있는 템플릿과 사전 정의된 캐스팅 기능을 제공합니다.cast_to. 이 함수는 다음과 같이 빈번한 작업을 다룹니다.UnixTimestampToDate그리고IntToBool.
  • 변환 로직이 대폭 리팩토링되어 이전보다 더 유연하고 맞춤화된 변환기가 만들어졌습니다.
  • 변환 엔진 도입

    • 무작위- 의사 무작위 알고리즘을 기반으로 변환기 값을 생성합니다.
    • 해시- 해시 함수를 사용하여 변환기 값을 생성합니다. 현재는 다음을 활용합니다.샤3해시 함수는 안전하지만 느리게 수행됩니다. 안정 릴리스에는 다음 중에서 선택할 수 있는 옵션이 있습니다.샤3그리고SipHash.
  • 정적 매개변수 값 템플릿 도입

  • 덤프 보존 관리- 보존 매개변수 도입됨(#201) 삭제 명령입니다. 실패 및 진행 중이라는 두 가지 새로운 상태가 도입되었습니다. "완료" 하트비트가 없거나 마지막 하트비트 타임스탬프가 30분을 초과하는 경우 덤프는 실패한 것으로 간주됩니다. 삭제 명령은 이제 다음 보존 매개변수를 지원합니다.

    • --시험 실행: 실제로 아무것도 삭제하지 않고 자세한 출력을 사용하여 테스트 모드에서 삭제 작업을 실행합니다.
    • --날짜 이전 2024-08-27T23:50:54+00:00: 지정된 날짜보다 오래된 덤프를 삭제합니다. 날짜를 입력해야 합니다. RFC3339Nano 형식입니다. 예를 들면 다음과 같습니다.2021-01-01T00:00:00Z.
    • --최근 10개 유지: N개의 가장 최근 덤프를 유지합니다. 여기서 N은 사용자가 지정합니다.
    • --1w2d3h4m5s6ms7us8ns에 대한 유지: 지정된 기간 동안 덤프를 유지합니다. 형식은 주(w), 일(d), 시간(h), 분(m), 초(s), 밀리초(ms), 마이크로초(us), 나노초(ns)를 지원합니다.
    • --정리 실패: 실패한 모든 덤프를 정리(제거)합니다.
    • --정리-안전하지 않음: "알 수 없거나 실패함" 상태의 덤프를 정리합니다. 이 옵션은--정리 실패.

출시 목록:

링크

질문이 있거나 도움이 필요하시면 언제든지 저희에게 연락해주세요.