TechBytes: Teradata Database 16.00: 1MB Rows

안녕하세요 테크 바이트에 오신 것을 환영합니다 나는 테라 데이타 연구소에서 차드 Seeraty입니다

이 1MB의 영구에 대한 논의이다 / 응답 행은 테라 데이타 데이터베이스 1600에 있습니다, 1메가바이트 행에 관련된 이전 버전의 기능에 대한 몇 가지 정보와 함께 1990 년대 후반, 64킬로바이트의 최대 행 크기는 테라 데이타 데이터베이스 V2R3의 기능으로 도입되었다 일반적인 작업은 간단한 SQL을 포함하는, 간단있을 때 행 당 데이터의 몇 킬로바이트는 일 허용했다 짧은 거래, 적은 수의 행, 작은 데이터 유형 그러나 최근 몇 년 동안 빅 데이터 동향의 폭발과 함께, 테라 데이타 데이터베이스는 약 1메가바이트에 64킬로바이트에서 최대 행 크기를 확장 할 수있는 기회를 보았다

고급 의사 결정 지원 응용 프로그램, 데이터 과학 중심의 분석 및 반 구조화 된 데이터의 새로운 유형 넓은 행에 대한 필요성을 지시한다 데이터베이스에 저장된 새로운 객체를 설계 할 때 행의 데이터의 큰 금액은 더 많은 유연성을 허용 또한 더 많은 유연성 누구의 행 크기 64킬로바이트 이하이다 기존 테이블에서 통찰력을 추출합니다 그룹화 많은 데이터가 함께, 데이터 조작 용이성에 번역, 참조의 지역성의 개선에 이르게 쉽게 데이터 모델링뿐만 아니라 더 나은 시스템 성능을 제공합니다 애플리케이션 로그는 예를 들어, 더 큰 열 팽창에서 텍스트 필드 많은 키 – 값 쌍을 저장할 수있다 1MB의 행의 기능을 사용할 수 전에 여러 기능은 여러 테라 데이타 데이터베이스 릴리스에 따라 단계적으로되었다

1메가바이트 데이터 블록을 판독 및 디스크 장치에 대하여 I / O 크게 각 유닛을 이용하여 행을 작성하는 더 효율적인 방법을 제공하고, 제했다 1메가바이트 스풀 행은 만들고 1메가바이트 데이터 블록 내에 저장 될 수있다 테라 데이타 데이터베이스는 내부적으로 크기 64킬로바이트를 초과 스풀 행을 조작하는 경우 더 복잡한 쿼리를 허용, 모든 기본 데이터에 대한 별도의 변경없이 이 두 기능은 테라 데이타 데이터베이스 1600에서 사용할 수 1메가바이트 영구적 인 행과 1메가바이트 응답 행에 대한 길을 열어 ,, (구어체로 "작은 실린더 시스템"이라고 함) 작은 실린더 크기 테라 데이타 파일 시스템의 이전 세대를 사용하는 시스템을 참고 이러한 기능을 제공 할 수있는 기능의 전체 규모를 지원하지 않습니다

이 카테고리에 속하는 두 시스템이 있습니다 하나는 데이터웨어 하우스 2650 어플라이언스입니다 다른 하나는 테라 데이타 데이터베이스 1300 소프트웨어 (또는 이전 버전)에서 업그레이드 된 모든 시스템입니다 이제까지 SYSINIT를 통해 다시 초기화를 진행하지 않고 이후 릴리스합니다 또한, 1메가바이트 데이터 블록은 주어진 시스템에서 가장 일반적인 워크로드에 의미가 있습니다 경우에만 적용되어야한다

한쪽 노트 :이 새로운 구조의 많은 기술적 1MiB로 언급 될 수있다 (메비 바이트) 크기 조정 및 제한 사항에 대한 테라 데이타의 내부 결정으로 인해 그러나, 테라 데이타 데이터베이스는 항상 용어 "메가 바이트를"사용 테라 데이타 파일 시스템은 원래 작년의 데이터베이스 환경을 지원하기 위해 만들어진 : 작은 거래, 작은 테이블, 작은 메모리 캐시 크기, 더 작은 디스크 드라이브, 작은 행 및 I / O의 작은 단위 이러한 개념과 기술은 테라 데이타의 초기부터 복잡 고급 그래서 최근 몇 년 동안의 주요 목표는 크게 우리의 데이터 구조의 여러 확장하여 이러한 한계를 산산조각하고있다 이 테라 데이타 오늘의 훨씬 더 큰 디스크 드라이브, 확장 된 노드 메모리의 장점을 악용하는 넓은 범위를 제공합니다 및 반 구조화 된 데이터의 다양한 종류의 새로운

설명하기 위해, 당신은 오래된 것들에 파일 시스템의 오늘날의 세대를 비교하고, 약 7 년의 기간에 놀라운 변화를 알 수 있습니다, 더 큰 물리적 행의 절정 전체 확장 노력을 선도 1600에 테라 데이타 데이터베이스 1300에서 실린더는 약 2MB 사이즈 (소형 실린더)에서 6 배 증가시켰다 약 11메가바이트에 (지금은 대형 실린더라고도 함) 데이터 블록 크기는 약 1MB 약 128킬로바이트에서 8X 증가했다 블록 당 더 행 또는 블록 당 더 많은 행의 저장을 허용한다

최대 행 크기는 1MB입니다 차례로 16 배 증가했다 또한, 큰 실린더와 하나 AMP 디스크 공간 드레서의 최대 크기는 10 배 증가하고, 오늘날의 더 큰 디스크 드라이브를 지원 이러한 모든 변경 사항은 더 복잡한 분석을 수행하기 위해 최적화 된보다 유연한 데이터베이스로 이어질 사용 성과 편의성을 크게 향상으로 고급 디스크 하드웨어를 지원 또한, 하나의 큰 실린더 시스템에 모든 허용 가능한 크기의 데이터 블록 및 행이 공존 할 수 있습니다 DBA가 또는 최종 사용자 측의 유지 보수 최소한의 노력과 함께 여기서 설명하는 기능도이 지역의 모든 지속적인 산업 성장 동향에 대한 토대를 마련

1메가바이트 데이터 블록 먼저 테라 데이타 데이터베이스 1410에 이용할 수있게되었다 1메가바이트 데이터 블록의 주요 이점은, 역사적으로 I / O를 바운드 많은 워크로드에 대한 I / O 성능의 개선 테이블에서 순차적 인 스타일로 많은 양의 데이터를 액세스 더 많은 데이터를 읽고 더 쉽게 쓸 수있다, 배열의 디스크 하위 시스템 대역폭에 덜 의존하는 요청을 처리합니다 일부 워크로드 처리량 및 CPU 경로 성능을 최대 60 %까지 I / O의 극적인 감소뿐만 아니라 완만 한 개선을 볼 수 있습니다

효과는 특히 다양한 목적으로 구축 된 테라 데이타 플랫폼 모델 크기에 테라 바이트까지 하드 디스크 드라이브를 회전에 발음된다 큰 블록 크기는 더 나은 압축 비율과 더 나은 실린더 활용의 결과로, 테라 데이타의 블록 레벨 압축 기능을 활용할 수 있습니다 좋은 압축 결과는 테이블의 데이터를 통해 패턴의 많은 일반적인 반복을 찾을 수에 따라 달라집니다 당신은 항상 여러 개의 작은 블록을 포함하는 테이블을 수정하는 경우, 최상의 압축 결과를 생성하는 압축 알고리즘에 괜찮은 입력을 제공하기 위해 때로는 어렵습니다 더 큰 블록을 사용하는 경우, 압축 알고리즘은 블록마다 작업에 더 많은 정보를 가지고 보다 강력한 압축 선도

이러한 이유로, 블록 레벨 압축으로 구성되어있는 어플라이언스 라인의 플랫폼 모델은 대형 블록 크기로 구성되어 있습니다 1메가바이트 데이터 블록과 함께, 1메가바이트 스풀 행은 테라 데이타 데이터베이스 1410에서 사용할 수 있습니다 1메가바이트 스풀 행의 가장 큰 장점은 일반적인 SQL 작업이 더 이상 내부 64킬로바이트 스풀 행 제한으로 제한되어 없습니다 이러한 작업은 노동 조합, 여러 개의 큰 기둥에 대한 집계, 그리고 여러 개의 대형 기둥에 합류했다

일례 64킬로바이트 각각 대략 인 열을 포함하는 두 테이블과, 여기에 도시되어있다 이 예에서는 용이 점을 설명하기 위해 최대 크기는 고정 된 길이의 문자 열을 이용한다 조합 동작은 두 개의 테이블에서 값의 고유 세트를 획득하고 사용자에게 반환한다 1MB의 스풀 행 기능을 사용할 수있었습니다 전에이 UNION 쿼리는 단순히 밖으로 오류가 발생한 1메가바이트 스풀 행, 쿼리가 성공합니다

테라 데이타 데이터베이스 1410, 1500 및 1510 출시에 유의하시기 바랍니다, 데이터 만 64KB의 실제 응답으로 클라이언트 응용 프로그램에 반환 될 수 있습니다 즉, SELECT 목록이 여전히 그 릴리스에서 64킬로바이트로 제한되어있다

의는 상기 UNION 쿼리를 자세히 살펴 보자 내부적으로, 테라 데이타 데이터베이스는 정렬 키 정렬 스풀 테이블을 생성 모든 중복 행을 제거합니다 여기서, 정렬 키는 SELECT 목록에서 선택한 두 개의 필드가 포함되어 있습니다 각 스풀 행의 나머지 데이터는 다시 두 개의 필드를 포함하는 실제의 행 데이터이다 스풀 테이블의 행은 행 데이터 플러스 종류의 키 데이터 64KB의 가치 이상 포함되어 있습니다

전통적으로,이 쿼리는 테라 데이타 데이터베이스에서 불가능했다 그러나 1MB의 스풀 행 기능은 쉽게 그것을 처리하고 밖으로 erroring없이 대답을 생산하고 있습니다 1메가바이트 영구 행은 이제 테라 데이타 데이터베이스 1600에서 사용할 수 있습니다 이제 DDL을 지정할 수 있습니다 그 사실은 하나의 행에 데이터 64KB의 이상을 만듭니다 당신은 눈에 띄게 SELECT 문이 모든 데이터를 검색 할 수 있습니다

1메가바이트 영구 행이 칼럼 등 다양한 테이블 유형에서 지원, 인덱스 및 해시 인덱스를 가입 할 수 있습니다 같은 보조 인덱스와 참조 인덱스와 같은 다른 데이터베이스 구조는,뿐만 아니라 지원 점에서 그들은 열 데이터 64KB의 가치 이상을 참조 할 수 있습니다 한 가지 중요한 이점은 가입 작업이 요구되었을 수 많은 경우가 제거된다는 것입니다 당신은 하나의 테이블에 함께 그룹 더 많은 데이터를 할 수있는 결과를 추출하는 간단한 쿼리를 실행합니다 예를 들어, 당신은 당신이 가입 할 필요 64킬로바이트 행에 여러 테이블을했을 수 있습니다

1메가바이트 영구 행으로, 이제 하나의 테이블에이 데이터를 대조하여 가입하고 스풀링 피할 개선 된 최적화 계획을 즐길 수 있습니다 또한 테라 데이타 데이터베이스 사이에보다 효율적으로 데이터를 이동할 수 있습니다 와 테라 데이타 도구 및 유틸리티 1600 소프트웨어 제품군 내의 다양한 유틸리티 데이터 분석의 많은 일반적인 사용 사례, 열 매우 많은 수의 매우 넓은 테이블을 만드는 것을 포함 이러한 컬럼의 대부분 또는 전부를 액세스하는 원주 상점은 덜 합리적인 것 같은 것이다 여전히 2,048 열의 제한을 적용하지만, 전체 1메가바이트 행 크기를 사용하여 테이블에서 데이터베이스 16

00 테라 데이타, 당신은 64KB의 행 크기를 갖는 테이블에 비해 크기 순서에 의해 더 큰 각 개별 열의 데이터 유형을 나타낼 수 있습니다 당신의 분석 요구가 전체 행에 걸쳐 혼합 각각의 단일 컬럼 내부 표현 더 많은 데이터 혜택을 때 유용합니다 에 대해 조인 점을 유지하기 위해 빅 데이터는 테라 데이타 데이터베이스의 유연 관계 행의 필요성을 드라이브 특정 스키마에 해당하는 데이터베이스에 데이터 스트리밍에 대한 속성의 넓은 범위를 설명 할 수있는 능력 없음은, 일부, 또는 그러한 속성은 주어진 기간 내에 특정 쿼리에 필요한되지 않을 수 있습니다 추가 단계는이 모든 데이터를 정화 또는 여러 관계형 테이블에 걸쳐 그것을 전파하기 반 구조화 된 데이터로 작업 최종 사용자에 불필요한 부담을 배치했다

전체의 데이터를 포함하는 정보 1메가바이트 많은 고유 부분을 수집하는 센서의 예를 들면, 이 모든 정보는 하나의 테이블에 1메가바이트 행으로 수집 할 수 있습니다 이것은 사용자가 신속하게 1메가바이트 행에서 원하는 속성을 추출하기 위해 활용할 수있는 일반적인 자체 설명 스키마와 호환 추가 단계를 가입 필요로하지 않는 쿼리의 SELECT 문 예 부부가 여기에 표시됩니다 이전과 마찬가지로,이 예제는 간단하게하기 위해 고전 구조화 된 데이터 유형을 사용합니다 64킬로바이트을 초과하는 행을 지정하려면, 당신이해야 할 모든 당신의 DDL 문에 원하는 열을 추가합니다

즉 64킬로바이트를 초과하는 행에 대해, 매우 또한뿐만 아니라 최대의 DATABLOCKSIZE 키워드를 지정하는 것이 좋습니다 참고 당신의 행이 최상의 성능 및 디스크 공간 활용을위한 최적의 1메가바이트에서 크기의 블록으로 배치됩니다 보장합니다 테이블을 만든 후에는 성공적으로 모든 데이터를 선택할 수 있습니다 또한 모든 데이터를 내보내고 모든 데이터뿐만 아니라를 가져올 행을 사용 지정할 수 있습니다 1MB의 영구 행 기능의 만족스러운 측면은 실제로 1메가바이트 행을 만들 필요가 없다는 것입니다 쿼리에 대한 응답으로 결과 1MB의를 얻을 수있다 당신은 64킬로바이트에 크기도 기존 테이블에서 가시적 인 성과 1MB의를 선택할 수 있습니다

1메가바이트 데이터 블록 사용을 시작하는 방법은 두 가지가 있습니다 사례별로에, 당신은 테이블 수준 속성과 DATABLOCKSIZE 키워드를 지정할 수 있습니다 하나에서 CREATE TABLE 문 또는 TABLE 문, 또는 둘 모두를 변경합니다 모든 데이터에 모든 시간을이 기능을 적용하려는 경우, 당신은 DBSCONTROL에 PermDBSize 및 WorkDBSize 설정을 변경할 수 있습니다 당신이 선택하면 개별 테이블에 큰 블록 크기를 적용 할 수 있습니다, 당신은 여전히 ​​최적의 성능을 위해 더 큰 값으로 WorkDBSize을 변경할 가능성이 높습니다 WorkDBSize 일반적 DDL을 통해 제공되지 스풀 블록 크기를 제어한다

기본 시스템 설정은 다른 특성에 따라 달라집니다 목적 내장 된 온 – 프레미스 시스템은 클라우드 기반 시스템과는 다른 설정이있을 수 있습니다 엔터프라이즈 데이터웨어 하우스 어플라이언스는 다른 설정이있을 수 있습니다 위의 테라 데이타 데이터베이스 1410을 실행하는 경우 대부분의 경우, 대형 블록 크기는 시스템 전체에 적용됩니다

이러한 기능은 몇 가지 제한 사항이 있습니다 작은 실린더 시스템은 이러한 기능을 최대한 활용할 수 없습니다 사실, 1MB의 영구 행 기능은 모든 작은 실린더를 사용할 수 없습니다 이 기능을 얻으려면, 당신은 전체 SYSINIT이 필요하고 대형 실린더 구성으로 복원합니다 여기서 우리가 살펴 보았다 기능 없음 열 크기 또는 지정 가능한 열 수에 대한 제한을 변경할 수 없습니다

작은 데이터 블록은 여전히 ​​데이터 블록의 작은 비율을 필요로 전술 스타일의 워크로드에 추천 Tpump, TPT 삽입 및 업데이트하고, 기본 키 스타일의 작업을 포함 그러한 부하의 경우, 성능 우선 순위 요청을 만족시키기 위해 필요한 최소량의 데이터를 얻을 수있다, 최소한의 I / O 전송 시간, 최소한의 CPU 및 준비 액세스 블록을 수정할 최소 메모리 요건 대형 데이터 블록은, 시스템의 이전 세대에 낙담 또는 작은 메모리에-AMP 비율이 일부 어플라이언스 플랫폼 모델 처리를위한 추가 공간이 필요 일부 작업은 이러한 상황에서 성능 저하가 발생할 수 있습니다