Direct Query
DIRECT QUERY 문을 사용하면 Direct Discovery 함수를 사용하여 ODBC 또는 OLE DB 연결을 통해 테이블에 액세스할 수 있습니다.
구문:
DIRECT QUERY DIMENSION fieldlist [MEASURE fieldlist] [DETAIL fieldlist] FROM tablelist
[WHERE where_clause]
DIMENSION, MEASURE 및 DETAIL 키워드는 어떤 순서로도 사용할 수 있습니다.
모든 DIRECT QUERY 문에는 DIMENSION 및 FROM 키워드 절이 필요합니다. FROM 키워드는 DIMENSION 키워드 뒤에 나와야 합니다.
DIMENSION 키워드 바로 다음에 지정되는 필드는 메모리에 로드되며, 인 메모리와 Direct Discovery 데이터 간 연결을 만드는 데 사용할 수 있습니다.
MEASURE 키워드를 사용하면 Qlik Sense가 "메타 수준"에서 인식하는 필드를 정의할 수 있습니다. 데이터 로드 프로세스 중에는 측정값 필드의 실제 데이터가 데이터베이스 내에만 존재하며, 시각화에서 사용되는 차트 표현식을 통해 임시로 검색됩니다.
일반적으로 차원으로 사용될 불연속 값이 있는 필드는 DIMENSION 키워드로 로드해야 하며, 집계에만 사용될 숫자는 MEASURE 키워드로 선택해야 합니다.
DETAIL 필드는 사용자가 하위 수준 표시 테이블 상자에 표시하고자 하는 주석 필드와 같은 정보 또는 세부 사항을 제공합니다. DETAIL 필드는 차트 표현식에 사용할 수 없습니다.
기본적으로 DIRECT QUERY 문은 SQL을 지원하는 데이터 소스에 대해 데이터-소스 중립적입니다. 따라서 동일한 DIRECT QUERY 문을 변경하지 않고 서로 다른 SQL 데이터베이스에 사용할 수 있습니다. Direct Discovery는 필요에 따라 데이터베이스에 적합한 쿼리를 생성합니다.
네이티브 데이터-소스 구문은 사용자가 쿼리할 데이터베이스를 알고 있으며, SQL에 대한 데이터베이스 관련 확장 기능을 활용하고자 할 때 사용할 수 있습니다. 네이티브 데이터-소스 구문은 다음과 같이 지원됩니다.
- DIMENSION 및 MEASURE 절에서 필드 표현식으로
- WHERE 절의 내용으로
예:
DIMENSION Dim1, Dim2MEASURENATIVE ('X % Y') AS X_MOD_Y
DIMENSION Dim1, Dim2MEASURE X, YFROM TableNameWHERE NATIVE ('EMAIL MATCHES "\*.EDU"')
인수:
인수 | 설명 |
---|---|
fieldlist |
필드 사양의 쉼표로 구분된 목록입니다. fieldname {, fieldname}. 필드 사양은 필드 이름일 수 있으며, 이 경우 데이터베이스 열 이름과 Qlik Sense 필드 이름에 동일한 이름이 사용됩니다. 또는 필드 사양이 "필드 별칭"이 될 수 있으며, 이 경우 데이터베이스 표현식 또는 열 이름에 Qlik Sense 필드 이름이 제공됩니다. |
tablelist |
데이터를 로드할 데이터베이스 내의 테이블 또는 보기 이름의 목록입니다. 일반적으로 이는 데이터베이스에서 수행된 JOIN을 포함하는 보기입니다. |
where_clause |
여기에는 데이터베이스 WHERE 절의 전체 구문이 정의되어 있지 않지만 함수 호출, 문자열에 대한 LIKE 연산자, IS NULL 및 IS 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)
|
이 예에서는 Dim1, Dim2, Num1, Num2 및 Num3 필드가 있는 TableName 데이터베이스 테이블이 사용됩니다.Dim1 및 Dim2가 Qlik Sense 데이터 집합에 로드됩니다.
Dim1 및 Dim2는 차원으로 사용할 수 있습니다. Num1, Num2 및 Num3은 집계에 사용할 수 있습니다. Dim1 및 Dim2 또한 집계에 사용할 수 있습니다. Dim1 및 Dim2를 사용할 수 있는 집계의 유형은 데이터 유형에 따라 결정됩니다. 예를 들어 대부분의 경우 DIMENSION 필드에는 이름 또는 계좌 번호와 같은 문자열 데이터가 포함됩니다. 해당 필드는 합산할 수 없지만 계수될 수는 있습니다(count(Dim1)).
예를 들어 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;