기본 콘텐츠로 건너뛰기

GeoAnalytics 커넥터에서 Qlik Sense GeoOperations로 마이그레이션

이 페이지에서

GeoAnalytics 커넥터에서 Qlik Sense GeoOperations로 마이그레이션

Qlik Cloud에 있는 Qlik Sense GeoOperationsQlik Sense Enterprise on Windows에 있는 GeoAnalytics 커넥터가 수행하는 것과 유사한 기능 및 작업을 제공합니다. 또한 동일한 데이터 형식을 많이 지원합니다. 다음과 같은 차이점이 있습니다.

  • GeoOperations는 커넥터보다 데이터 전송 및 처리에 더 적합한 AAI(고급 분석 통합)입니다.
  • GeoOperations는 스크립트 언어에서만 액세스할 수 있습니다. GeoOperations에 대한 마법사가 없습니다.
  • 고급 분석 통합의 스크립트 구문은 커넥터와 다릅니다.
  • GeoOperations는 차트 표현식에도 사용할 수 있습니다.
  • GeoOperations는 단일 테이블을 반환합니다. 커넥터가 반환하는 것과 비교하여 테이블은 GeoOperations에서 조인됩니다.
  • GeoOperations에서 일부 필드 및 매개 변수의 이름이 보다 일관성 있게 변경되었습니다.

다음은 GeoAnalytics 커넥터 마법사에서 생성된 스크립트를 GeoOperations로 변환하는 방법을 설명합니다.

  1. 데이터 로드 편집기GeoAnalytics 커넥터 스크립트 코드에서 SQL 뒤의 모든 내용을 두 번째 SELECT 또는 ";"(둘 중 먼저 나오는 것)까지 복사합니다.
  2. GeoAnalytics 커넥터 스크립트의 모든 ' 문자를 "로 바꿉니다.
  3. GeoAnalytics 커넥터 스크립트의 보조 SELECT 문에서 선택한 필드 이름을 GeoOperations 스크립트의 첫 번째 SELECT 문에 추가합니다. 이미 있는 필드는 생략합니다. 소스 테이블 이름을 마침표로 구분하여 필드 이름에 추가합니다. 예: table.field. 이렇게 하면 여러 테이블 대신 조인된 단일 테이블이 만들어집니다.

  4. 작업 및 데이터 집합에 대한 참조 문서를 검토하고 필요한 경우 매개 변수 또는 필드 이름을 조정합니다.

    작업 (영어로만 제공)

    데이터 집합 (영어로만 제공)

  5. GeoOperations 스크립트의 시작 부분에 다음을 추가합니다. 

    Load * Extension GeoOperations.ScriptEval('

  6. GeoOperations 스크립트의 끝 부분에 다음을 추가합니다.

    ');

GeoAnalytics 커넥터에서 로드된 테이블을 사용하는 경우 대신 두 번째 매개 변수로 GeoOperations.ScriptEval에 보냅니다.

GeoOperations는 조인된 테이블을 반환하므로 기본 테이블에 해당 값이 있는 필드 값만 보조 테이블에서 반환됩니다. 예를 들어 독일에서 일부 포인트에 대한 가장 가까운 공항을 찾으려면 해당 포인트와 가장 가까운 공항에 대한 데이터만 반환됩니다. 독일의 모든 공항을 원할 경우에는 LOAD 작업을 통해 별도로 로드해야 합니다.

커넥터가 있는 SQL 데이터베이스에서 로드하는 경우 대신 ODBC 커넥터와 같은 데이터베이스 커넥터 중 하나로 데이터를 로드해야 합니다. 도형을 WKT로 로드해야 합니다(SQL 쿼리에서 일반적으로 st_asText()라고 하는 함수 적용). 그런 다음 테이블을 GeoOperations로 보내 WKT 필드를 변환합니다. 그런 다음 Qlik Sense 형식의 도형이 있는 필드를 반환합니다.

스크립트 변환 예

이 스크립트 변환 예에서는 다음 GeoAnalytics 커넥터 스크립트를 사용합니다.

/* Generated by GeoAnalytics for operation Cluster ---------------------- */

[ClusterAssociations]:

SQL SELECT [LocationDbId], [Clusters_ClusterID] FROM Cluster(distance='10000', points='Points')

DATASOURCE Points LOCATIONSERVICE geometry='POINT', type='XIATA', country='de', serviceName='default'

SELECT [Clusters_ClusterID], [Clusters_ClusterCenter] FROM Clusters;

[Clusters]:

SQL LOAD * FROM Clusters;

tag field [LocationDbId] with '$primarykey';

tag field [Clusters_ClusterID] with '$primarykey';

tag field [Clusters_ClusterCenter] with '$geopoint';

tag field [Clusters_ClusterID] with '$geoname';

tag field [Clusters_ClusterCenter] with '$relates_Clusters_ClusterID';

tag field [Clusters_ClusterID] with '$relates_Clusters_ClusterCenter';

/* End GeoAnalytics operation Cluster ----------------------------------- */

 

다음과 같이 하십시오.

  1. SQL 및 두 번째 SELECT 문 사이에 스크립트를 사용합니다.

    SELECT [LocationDbId], [Clusters_ClusterID] FROM Cluster(distance='10000', points='Points')

    DATASOURCE Points LOCATIONSERVICE geometry='POINT', type='XIATA', country='de', serviceName='default'

  2. 인용 부호를 바꿉니다.

    SELECT [LocationDbId], [Clusters_ClusterID] FROM Cluster(distance="10000", points="Points")

    DATASOURCE Points LOCATIONSERVICE geometry="POINT", type="XIATA", country="de", serviceName="default"

  3. 보조 테이블에서 필드를 추가합니다.

    SELECT [LocationDbId], [Clusters_ClusterID], [Clusters.Clusters_ClusterCenter] FROM Cluster(distance="10000", points="Points")

    DATASOURCE Points LOCATIONSERVICE geometry="POINT", type="XIATA", country="de", serviceName="default"

  4. 매개 변수 및 필드 이름을 조정합니다.

    SELECT [LocationDbId], [ClusterID], [Clusters.ClusterPoint] as [Clusters_ClusterCenter] FROM Cluster(distance="10000", points="Points")

    DATASOURCE Points LOCATIONSERVICE geometry="POINT", type="XIATA", country="de", serviceName="default"

  5. 상용구 코드로 묶습니다.

    Load * Extension GeoOperations.ScriptEval('

    SELECT [LocationDbId], [ClusterID], [Clusters.ClusterPoint] as [Clusters_ClusterCenter] FROM Cluster(distance="10000", points="Points")

    DATASOURCE Points LOCATIONSERVICE geometry="POINT", type="XIATA", country="de", serviceName="default"

    ');

이제 이 스크립트 코드를 Qlik Sense GeoOperations와 함께 사용할 수 있습니다.