기본 콘텐츠로 건너뛰기

QVD 파일

QVD (QlikView Data) 파일은 Qlik Sense 또는 QlikView에서 내보낸 데이터의 테이블을 포함한 파일입니다. QVD는 네이티브 Qlik 형식이며 Qlik Sense 또는 QlikView에서만 읽고 쓸 수 있습니다. 파일 형식은 Qlik Sense 스크립트에서 데이터를 읽는 속도에 최적화되어 있지만 크기는 매우 작습니다. 파일 형식은 스크립트에서 데이터를 읽는 속도에 최적화되어 있지만 크기는 매우 작습니다. QVD 파일에서 데이터를 읽는 속도는 일반적으로 다른 데이터 소스에서 데이터를 읽는 것보다 10-100배 정도 빠릅니다.

QVD 파일은 표준(빠름) 모드와 최적화(매우 빠름) 모드에서 읽을 수 있습니다. 모드 선택은 Qlik Sense 스크립트 엔진에서 자동으로 결정합니다. 최적화 모드는 모든 로드 파일을 아무런 변형(필드에 적용되는 수식) 없이 읽을 때에만 사용할 수 있지만 필드 이름 변경은 허용됩니다. Qlik Sense에서 레코드를 압축 해제하게 만드는 Where 절은 최적화된 로드 또한 비활성화합니다.

QVD 파일은 정확하게 하나의 데이터 테이블을 포함하며 다음 세 가지 부분으로 구성됩니다.

  • 테이블의 필드, 후속 정보 레이아웃 및 기타 메타데이터를 설명하는 XML 헤더(UTF-8 문자 집합)
  • 바이트 형식의 기호 테이블
  • 비트 형식의 실제 테이블 데이터

QVD 파일은 다양한 용도로 사용될 수 있습니다. 네 가지 중요 용도는 쉽게 확인할 수 있습니다. 어느 경우에도 다음 중 둘 이상의 용도를 적용할 수 있습니다.

  • 데이터 로드 속도 향상
  • QVD 파일에서 입력 데이터의 불변하는 또는 느리게 변하는 블록을 버퍼링하면 큰 데이터 셋에 대한 스크립트 실행 속도가 상당히 빨라집니다.

  • 데이터베이스 서버의 부하 감소
  • 외부 데이터 소스에서 가져오는 데이터의 양이 상당히 감소할 수 있습니다. 이로 인해 외부 데이터베이스의 워크로드와 네트워크 트래픽이 감소하게 됩니다. 게다가 여러 Qlik Sense 스크립트에서 동일한 데이터를 공유할 때 해당 데이터를 소스 데이터베이스에서 QVD 파일로 한 번만 로드하면 됩니다. 다른 응용 프로그램에서도 이 QVD 파일을 통해 동일한 데이터를 사용할 수 있습니다.

  • 여러 Qlik Sense 응용 프로그램의 데이터 통합.
  • Binary 스크립트 문을 사용하면 한 Qlik Sense 응용 프로그램의 데이터만 다른 프로그램으로 로드할 수 있습니다. 하지만 QVD 파일을 사용하면 Qlik Sense 스크립트가 여러 Qlik Sense 응용 프로그램의 데이터를 조합할 수 있습니다. 이 기능으로 인해 응용 프로그램에서 여러 비즈니스 단위 등의 유사한 데이터를 통합할 수 있게 되었습니다.

  • 증분 로드
  • 많은 경우, QVD 기능을 사용하면 크기가 커지고 있는 데이터베이스에서 새로운 레코드를 배타적으로 로드하여 증분 로드를 수월하게 수행할 수 있습니다.

QVD 파일 만들기

QVD 파일은 두 가지 방법으로 만들 수 있습니다.

  • Qlik Sense 스크립트에서 Store 명령을 사용하여 명시적 생성 및 명명.
  • 이전에 읽은 테이블 또는 그 일부를 선택한 위치의 명시적으로 명명한 파일로 내보내도록 스크립트에 명시합니다.

  • 스크립트에서 자동 생성 및 유지 관리.
  • load 또는 select 문 앞에 Buffer 접두사를 추가하면 Qlik Sense가 특정 상황에서 데이터를 다시 로드할 때 원본 데이터 소스 대신 사용할 수 있는 QVD 파일이 자동으로 생성됩니다.

위의 방법으로 생성된 QVD 파일들은 읽기 속도에 차이가 없습니다.

Store

이 스크립트 함수는 명시적으로 명명된 QVD, CSV 또는 txt 파일을 만듭니다.

Syntax:  

Store[ *fieldlist from] table into filename [ format-spec ];

또한 이 문은 하나의 데이터 테이블에서만 필드를 내보낼 수 있습니다. 여러 테이블의 필드를 내보내는 경우 내보낼 데이터 테이블을 만들려면 스크립트에서 미리 명시적 조인을 수행해야 합니다.

텍스트 값은 UTF-8 형식의 CSV 파일로 내보냅니다. 구분 기호를 지정할 수 있습니다. 자세한 내용은 LOAD를 참조하십시오. CSV 파일에 대한 store 문은 BIFF 내보내기를 지원하지 않습니다.

Store mytable into [lib://DataFiles/xyz.qvd]; Store * from mytable into [lib://DataFiles/xyz.qvd]; Store myfield from mytable into [lib://DataFiles/xyz.qvd]; Store myfield as renamedfield, myfield2 as renamedfield2 from mytable into [lib://DataFiles/xyz.qvd]; Store mytable into [lib://DataFiles/myfile1.txt]; Store mytable into [lib://DataFiles/myfile2.csv];

다음과 같이 하십시오.

  1. Advanced Scripting Tutorial 앱을 엽니다.
  2. Product 스크립트 섹션을 클릭합니다.
  3. 스크립트의 끝 부분에 다음을 추가합니다.
  4. Store * from Product into [lib://DataFiles/ProductData.qvd](qvd);

    스크립트는 다음과 같이 표시되어야 합니다.

    CrossTable(Month, Sales) LOAD Product, "Jan 2014", "Feb 2014", "Mar 2014", "Apr 2014", "May 2014" FROM [lib://DataFiles/Product.xlsx] (ooxml, embedded labels, table is Product); Store * from Product into [lib://DataFiles/ProductData.qvd](qvd);

  5. 데이터 로드를 클릭합니다.
  6. 이제 Product.qvd 파일이 파일 목록에 표시됩니다.

    이 데이터 파일은 Crosstable 스크립트의 결과이며 각 범주(Product, Month, Sales)에 대해 하나의 열을 갖는 3열 테이블입니다. 이제 이 데이터 파일을 전체 Product 스크립트 섹션을 바꾸는 데 사용할 수 있습니다.

QVD 파일에서 데이터 읽기

다음과 같은 방법을 통해 Qlik Sense에서 QVD 파일을 읽거나 액세스할 수 있습니다.

  • 명시적 데이터 소스로 QVD 파일 로드. QVD 파일은 다른 형식의 텍스트 파일(csv, fix, dif, biff 등)과 마찬가지로 Qlik Sense 스크립트에서 load 문을 통해 참조할 수 있습니다.
  • LOAD * from [lib://DataFiles/xyz.qvd] (qvd); LOAD fieldname1, fieldname2 from [lib://DataFiles/xyz.qvd] (qvd); LOAD fieldname1 as newfieldname1, fieldname2 as newfieldname2 from [lib://DataFiles/xyz.qvd](qvd);
  • 버퍼링된 QVD 파일 자동 로드. load 또는 select 문에 buffer 접두사를 사용하면 읽기를 위한 명시적 문을 사용할 필요가 없습니다. 원래 LOAD 또는 SELECT 문을 사용하여 데이터를 얻는 것과는 대조적으로 Qlik Sense에서는 QVD 파일의 데이터 사용 범위를 결정합니다.
  • 스크립트에서 QVD 파일 액세스. 여러 스크립트 함수(모두 QVD로 시작)를 QVD 파일의 XML 헤더에 있는 데이터에서 다양한 정보를 검색하는 데 사용할 수 있습니다.

다음과 같이 하십시오.

  1. Product 스크립트 섹션의 전체 스크립트를 주석 처리합니다.
  2. 다음 스크립트를 입력합니다.
  3. Load * from [lib://DataFiles/ProductData.qvd](qvd); 

  4. 데이터 로드를 클릭합니다.
  5. QVD 파일에서 데이터가 로드됩니다.

    데이터 로드 진행률 창
    Data load progress window.

정보 메모증분 로드에 QVD 파일 사용에 대한 자세한 내용은 Qlik Community의 다음 블로그 게시물을 참조하십시오. Overview of Qlik Incremental Loading(Qlik 증분 로드 개요)

Buffer

QVD 파일은 Buffer 접두사를 통해 자동으로 생성 및 유지 관리할 수 있습니다. 이 접두사는 스크립트에서 대부분의 LOADSELECT 문에 사용할 수 있습니다. 이 접두사는 해당 문의 결과를 캐시/버퍼링하는 데 QVD 파일을 사용하도록 지정합니다.

Syntax:  

Buffer [ (option [ , option])] ( loadstatement | selectstatement ) option::= incremental | stale [after] amount [(days | hours)]

옵션이 사용되지 않으면 스크립트가 처음 실행될 때 생성된 QVD 버퍼가 무제한으로 사용됩니다.

Example:  

Buffer load * from MyTable;

stale [after] amount [(days | hours)]

Amount는 기간을 지정하는 수입니다. Decimals를 사용할 수 있습니다. 단위를 생략한 경우 days가 사용됩니다.

stale after 옵션은 원본 데이터에 단순 타임스탬프가 없는 데이터베이스 소스에서 일반적으로 사용됩니다. stale after 절은 QVD 버퍼가 생성된 이후 기간이 얼마나 지나면 더 이상 유효하지 않은 것으로 간주할지 지정합니다. 이 기간이 되기 전까지는 QVD 버퍼가 데이터 소스로 사용되며 그 이후로는 원본 데이터 소스가 사용됩니다. 그러면 QVD 버퍼 파일이 자동으로 업데이트되고 새로운 기간이 시작됩니다.

Example:  

Buffer (stale after 7 days) load * from MyTable;

Incremental

incremental 옵션은 원본 파일의 일부분만 읽는 기능을 사용합니다. 파일의 이전 크기는 QVD 파일의 XML 헤더에 저장됩니다. 이 기능은 특히 로그 파일에 유용합니다. 이전 항목에서 로드된 모든 레코드는 QVD 파일에서 읽어들이고 새로운 후속 레코드는 원본 소스에서 읽어들여서 최종적으로 업데이트된 QVD 파일을 만듭니다.

incremental 옵션은 LOAD 문 및 텍스트 파일에만 사용할 수 있으며 증분 로드는 이전 데이터가 변경 또는 삭제된 경우 사용할 수 없습니다.

Example:  

Buffer (incremental) load * from MyLog.log;

일반적으로 QVD 버퍼는 앱 내에서 버퍼를 생성한 전체 스크립트가 실행되는 동안 더 이상 참조되지 않거나 버퍼를 생성한 앱이 더 이상 존재하지 않으면 제거됩니다. Store 문은 버퍼의 내용을 QVD 또는 CSV 파일로 유지하려는 경우에 사용해야 합니다.

다음과 같이 하십시오.

  1. 새 앱을 만들고 이름을 지정합니다.
  2. 데이터 로드 편집기에서 새 스크립트 섹션을 추가합니다.
  3. 오른쪽 메뉴의 DataFiles에서 데이터 선택을 클릭합니다.

  4. 업로드한 다음 Cutlery.xlsx를 선택합니다.
  5. 데이터 선택 창에서 스크립트 삽입을 클릭합니다.
  6. LOAD 문의 필드를 주석 처리하고 LOAD 문을 다음으로 변경합니다.
  7. Buffer LOAD *

    스크립트는 다음과 같이 표시되어야 합니다.

    Buffer LOAD * // "date", // item, // quantity FROM [lib://DataFiles/Cutlery.xlsx] (ooxml, embedded labels, table is Sheet1);

  8. 데이터 로드를 클릭합니다.
  9. 데이터를 처음 로드하는 경우 Cutlery.xlsx에서 로드됩니다.

    데이터 로드 진행률 창
    Data load progress window.

    Buffer 문도 QVD 파일을 만들고 Qlik Sense에 저장합니다. 클라우드 배포에서는 클라우드의 디렉터리에 저장됩니다.

  10. 데이터 로드를 다시 클릭합니다.
  11. 데이터를 처음 로드한 경우 이번에는 Buffer 문에서 만든 QVD 파일에서 데이터가 로드됩니다.
  12. 데이터 로드 진행률 창
    Data load progress window.

감사합니다.

이제 이 자습서가 끝났습니다. Qlik Sense에서 스크립트를 작성하는 데 필요한 많은 지식을 얻으셨기 바랍니다. 추가적으로 제공되는 다양한 교육에 대한 자세한 정보를 얻으려면 Qlik 웹 사이트를 방문하십시오.