azure-stream-analytics - 在流分析查询中生成倒置时间戳

标签 azure-stream-analytics

我想将流分析作业的输出通过管道传输到表存储。对于行键,我想使用反向时间戳。在 C# 中,我只需执行以下操作:

var invertedTimestamp = DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks;

我正在尝试编写 ASA 工作查询,但不知道如何获得类似的内容:
SELECT
    CONCAT(deviceId, '_', sessionId) as DeviceSession,
    DATEDIFF ( ms , NOW(), MAX_DATE() ) //pseudocode
INTO
    tablestorage
FROM
    iothub

最佳答案

您可以使用 User Defined Functions

带功能:

/ There are 10000 ticks in a millisecond.
// And there are 621355968000000000 ticks between 1st Jan 0001 and 1st Jan 1970.
function tics_to_max() {
	var convertToTicks = function (date) {
		return ((date.getTime() * 10000) + 621355968000000000);
	};

	var max = new Date('9999-12-31T23:59:59.999Z');
	var maxTics = convertToTicks(max);
	var currentTics = convertToTicks(new Date());

	return maxTics - currentTics;
}


您的查询可能如下所示:
SELECT
  CONCAT(deviceId, '_', sessionId) as DeviceSession,
  udf.tics_to_max() AS TicsToMax
INTO
  tablestorage
FROM
  iothub

关于azure-stream-analytics - 在流分析查询中生成倒置时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51489307/

相关文章:

mysql - Azure 流分析输出到 MySQL 数据库

azure - 计算 azure 流分析中的累积总和

嵌套数组/记录的 Azure 流分析查询

azure - 将数据从流分析提取到 Azure 机器学习

azure - 使用数组中的元素加入流分析

azure - 在Azure流分析中Unix时间转换为日期

azure - 如何处理 "Iot hub"中的两个 "stream analytics job"设备?

使用 PowerBi 进行 Azure 流分析失败

azure-iot-hub - 如何在流分析中读取 IoT 中心消息 'application properties'?

azure - 如何使用 Azure 流分析查询创建复杂类型