Direct Query

DIRECT QUERY 문을 사용하면 Direct Discovery 함수를 사용하여 ODBC 또는 OLE DB 연결을 통해 테이블에 액세스할 수 있습니다.

Syntax:  

DIRECT QUERY DIMENSION fieldlist [MEASURE fieldlist[DETAIL fieldlist] FROM tablelist

[WHERE where_clause]

 

DIMENSION, MEASUREDETAIL 키워드는 어떤 순서로도 사용할 수 있습니다.

모든 DIRECT QUERY 문에는 DIMENSIONFROM 키워드 절이 필요합니다. FROM 키워드는 DIMENSION 키워드 뒤에 나와야 합니다.

DIMENSION 키워드 바로 다음에 지정되는 필드는 메모리에 로드되며, 인 메모리와 Direct Discovery 데이터 간 연결을 만드는 데 사용할 수 있습니다.

참고: DIRECT QUERY 문에는 DISTINCT 또는 GROUP BY 절을 포함할 수 없습니다.

MEASURE 키워드를 사용하면 Qlik Sense가 "메타 수준"에서 인식하는 필드를 정의할 수 있습니다. 데이터 로드 프로세스 중에는 측정값 필드의 실제 데이터가 데이터베이스 내에만 존재하며, 시각화에서 사용되는 차트 표현식을 통해 임시로 검색됩니다.

일반적으로 차원으로 사용될 불연속 값이 있는 필드는 DIMENSION 키워드로 로드해야 하며, 집계에만 사용될 숫자는 MEASURE 키워드로 선택해야 합니다.

DETAIL 필드는 사용자가 하위 수준 표시 테이블 상자에 표시하고자 하는 주석 필드와 같은 정보 또는 세부 사항을 제공합니다. DETAIL 필드는 차트 표현식에 사용할 수 없습니다.

기본적으로 DIRECT QUERY 문은 SQL을 지원하는 데이터 소스에 대해 데이터-소스 중립적입니다. 따라서 동일한 DIRECT QUERY 문을 변경하지 않고 서로 다른 SQL 데이터베이스에 사용할 수 있습니다. Direct Discovery는 필요에 따라 데이터베이스에 적합한 쿼리를 생성합니다.

네이티브 데이터-소스 구문은 사용자가 쿼리할 데이터베이스를 알고 있으며, SQL에 대한 데이터베이스 관련 확장 기능을 활용하고자 할 때 사용할 수 있습니다. 네이티브 데이터-소스 구문은 다음과 같이 지원됩니다.

  • DIMENSIONMEASURE 절에서 필드 표현식으로
  • WHERE 절의 내용으로

예:

DIRECT QUERY
DIMENSION Dim1, Dim2
MEASURE
NATIVE ('X % Y') AS X_MOD_Y
FROM TableName
DIRECT QUERY
DIMENSION Dim1, Dim2
MEASURE X, Y
FROM TableName
WHERE NATIVE ('EMAIL MATCHES "\*.EDU"')
참고: 다음 용어는 키워드로 사용되므로 따옴표 없이 열 또는 필드 이름으로 사용할 수 없습니다. and, as, detach, detail, dimension, distinct, from, in, is, like, measure, native, not, or, where

Arguments:  

인수 설명
fieldlist

필드 사양의 쉼표로 구분된 목록입니다. fieldname {, fieldname}. 필드 사양은 필드 이름일 수 있으며, 이 경우 데이터베이스 열 이름과 Qlik Sense 필드 이름에 동일한 이름이 사용됩니다. 또는 필드 사양이 "필드 별칭"이 될 수 있으며, 이 경우 데이터베이스 표현식 또는 열 이름에 Qlik Sense 필드 이름이 제공됩니다.

Direct Discovery 필드 목록

tablelist

데이터를 로드할 데이터베이스 내의 테이블 또는 보기 이름의 목록입니다. 일반적으로 이는 데이터베이스에서 수행된 JOIN을 포함하는 보기입니다.

where_clause

여기에는 데이터베이스 WHERE 절의 전체 구문이 정의되어 있지 않지만 함수 호출, 문자열에 대한 LIKE 연산자, IS NULLIS NOT NULL 등의 사용을 포함하여 대부분의 SQL "관계형 표현식"이 허용되며, BETWEEN은 포함되지 않습니다.

NOT은 특정 키워드에 대한 수정자와 달리 단항 연산자입니다.

예:

WHERE x > 100 AND "Region Code" IN ('south', 'west')
WHERE Code IS NOT NULL and Code LIKE '%prospect'
WHERE NOT X in (1,2,3)

마지막 예는 다음과 같이 작성할 수 없습니다.

WHERE X NOT in (1,2,3)

Example:  

이 예에서는 Dim1, Dim2, Num1, Num2Num3 필드가 있는 TableName 데이터베이스 테이블이 사용됩니다.Dim1Dim2Qlik Sense 데이터 집합에 로드됩니다.

DIRECT QUERY DIMENSTION Dim1, Dim2 MEASURE Num1, Num2, Num3 FROM TableName ;
 

Dim1Dim2는 차원으로 사용할 수 있습니다. Num1, Num2Num3은 집계에 사용할 수 있습니다. Dim1Dim2 또한 집계에 사용할 수 있습니다. Dim1Dim2를 사용할 수 있는 집계의 유형은 데이터 유형에 따라 결정됩니다. 예를 들어 대부분의 경우 DIMENSION 필드에는 이름 또는 계좌 번호와 같은 문자열 데이터가 포함됩니다. 해당 필드는 합산할 수 없지만 계수될 수는 있습니다(count(Dim1)).

참고: DIRECT QUERY 문은 스크립트 편집기에서 직접 작성합니다. DIRECT QUERY 문의 구조를 간소화하려면 데이터 연결에서 SELECT 문을 생성한 다음, 생성된 스크립트를 편집하여 DIRECT QUERY 문으로 바꿀 수 있습니다.
예를 들어 SELECT 문은 다음과 같습니다.

SQL SELECT
SalesOrderID,
RevisionNumber,
OrderDate,
SubTotal,
TaxAmt
FROM MyDB.Sales.SalesOrderHeader;


다음 DIRECT QUERY 문으로 변경될 수 있습니다.

DIRECT QUERY
DIMENSION
SalesOrderID,
RevisionNumber

MEASURE
SubTotal,
TaxAmt

DETAIL
OrderDate

FROM MyDB.Sales.SalesOrderHeader;