Microsoft Fabric에서 Time Series Insights Gen1을 실시간 인텔리전스로 마이그레이션

참고 항목

Time Series Insights 서비스는 2024년 7월 7일에 사용 중지됩니다. 최대한 빨리 기존 환경을 대체 솔루션으로 마이그레이션하는 것이 좋습니다. 사용 중단 및 마이그레이션에 대한 자세한 내용은 설명서를 참조하세요.

개요

Eventhouse 는 실시간 인텔리전스의 시계열 데이터베이스입니다. Time Series Insights에서 데이터를 마이그레이션하기 위한 대상으로 사용됩니다.

필수 조건

새 데이터 수집

다음 단계를 사용하여 Eventhouse에 새 데이터 수집을 시작합니다.

  1. 새 소비자 그룹을 사용하여 이벤트 허브를 구성합니다.

  2. 데이터 원본의 데이터를 사용하고 Eventhouse에 수집합니다. 이벤트 허브에서 데이터를 수집하는 방법에 대한 설명서를 참조하세요.

Time Series Insights에서 기록 데이터 마이그레이션

Time Series Insights 환경에서 데이터를 내보내야 하는 경우 Time Series Insights 쿼리 API를 사용하여 이벤트를 일괄 처리로 다운로드하고 필요한 형식으로 serialize할 수 있습니다. 내보낸 데이터를 저장한 위치에 따라 Azure Storage, 로컬 파일 또는 OneLake에서 데이터를 수집할 수 있습니다.

참조 데이터 마이그레이션

다음 단계를 사용하여 참조 데이터를 마이그레이션합니다.

  1. Time Series Insights 탐색기 또는 참조 데이터 API를 사용하여 참조 데이터 집합을 다운로드합니다.

  2. 참조 데이터 집합 이 있으면 Eventhouse 에 다른 테이블로 업로드합니다. 참조 데이터 집합을 업로드하여 Eventhouse 환경 내에서 액세스하고 활용할 수 있습니다.

Time Series Insights 쿼리를 Kusto 쿼리 언어 변환

쿼리의 경우 Eventhouse에서 Kusto 쿼리 언어 사용하는 것이 좋습니다.

이벤트

{
  "searchSpan": {
    "from": "2021-11-29T22:09:32.551Z",
    "to": "2021-12-06T22:09:32.551Z"
  },
  "predicate": {
    "predicateString": "([device_id] = 'device_0') AND ([has_error] != null OR [error_code] != null)"
  },
  "top": {
    "sort": [
      {
        "input": {
          "builtInProperty": "$ts"
        },
        "order": "Desc"
      }
    ],
    "count": 100
  }
}
	events
| where _timestamp >= datetime("2021-11-29T22:09:32.551Z") and _timestamp < datetime("2021-12-06T22:09:32.551Z") and deviceid == "device_0" and (not(isnull(haserror)) or not(isempty(errorcode)))
| top 100 by _timestamp desc

집계

{
    "searchSpan": {
      "from": "2021-12-04T22:30:00Z",
      "to": "2021-12-06T22:30:00Z"
    },
    "predicate": {
      "eq": {
        "left": {
          "property": "DeviceId",
          "type": "string"
        },
        "right": "device_0"
      }
    },
    "aggregates": [
      {
        "dimension": {
          "uniqueValues": {
            "input": {
              "property": "DeviceId",
              "type": "String"
            },
            "take": 1
          }
        },
        "aggregate": {
          "dimension": {
            "dateHistogram": {
              "input": {
                "builtInProperty": "$ts"
              },
              "breaks": {
                "size": "2d"
              }
            }
          },
          "measures": [
            {
              "count": {}
            },
            {
              "sum": {
                "input": {
                  "property": "DataValue",
                  "type": "Double"
                }
              }
            },
            {
              "min": {
                "input": {
                  "property": "DataValue",
                  "type": "Double"
                }
              }
            },
            {
              "max": {
                "input": {
                  "property": "DataValue",
                  "type": "Double"
                }
              }
            }
          ]
        }
      }
    ]
  }

	let _q = events | where _timestamp >= datetime("2021-12-04T22:30:00Z") and _timestamp < datetime("2021-12-06T22:30:00Z") and deviceid == "device_0";
let _dimValues0 = _q | project deviceId | sample-distinct 1 of deviceId;
_q
| where deviceid in (_dimValues0) or isnull(deviceid)
| summarize
    _meas0 = count(),
    _meas1 = iff(isnotnull(any(datavalue)), sum(datavalue), any(datavalue)),
    _meas2 = min(datavalue),
    _meas3 = max(datavalue),
    by _dim0 = deviceid, _dim1 = bin(_timestamp, 2d)
| project
    _dim0,
    _dim1,
    _meas0,
    _meas1,
    _meas2,
    _meas3,
| sort by _dim0 nulls last, _dim1 nulls last