流分析作业 -> 数据湖输出

Posted

技术标签:

【中文标题】流分析作业 -> 数据湖输出【英文标题】:Stream Analytics Job -> DataLake ouput 【发布时间】:2018-02-23 13:04:03 【问题描述】:

我想使用 StreamAnalytics 作业设置 CI/CD(ARM 模板),并将输出设置为 DataLake Store。 https://docs.microsoft.com/en-us/azure/templates/microsoft.streamanalytics/streamingjobs/outputs#microsoftdatalakeaccounts

问题来自于 refreshToken: "建议在创建数据源的时候在这里放一个虚拟字符串值 然后去 Azure 门户对数据源进行身份验证 这将使用有效的刷新令牌更新此属性”

此外,90 天后刷新令牌已过时,您需要进行“更新授权” https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-data-lake-output#renew-data-lake-store-authorization

我尝试授权 ServicePrincipal。

如何使用 DataLake 为 ASA 进行自动部署? 如何处理这个 90 天令牌有效期的问题?

也许你擦掉了踪迹:)

【问题讨论】:

【参考方案1】:

目前还不可能。带来不便敬请谅解。但是我们知道这非常重要,我们将在不久的将来添加服务主体身份验证(我们正在查看确切的 ETA)。

与此同时,您需要手动更新令牌。这可以通过以下方式在不丢失任何数据的情况下完成:(1) 停止作业,(2) 更改令牌,然后 (3) 在上次停止作业时重新启动作业。

如果您有任何其他问题,请告诉我。

【讨论】:

感谢您的信息。你知道它可用的任何可能的日期吗?天/月 (1-3)?我有时间发布生产版本,所以等待 2 个月对我来说是可以接受的。 我们也在等待这个——如果没有这个,目前不可能用 Terraform 自动化 DataLake...【参考方案2】:

据我所知,基于 MSI 的身份验证很快就会推出预览版。

但如果您需要立即解决方案(例如,能够让 VSTS 管道顺利通过),您可以执行以下操作:

创建模板(例如,使用 CICD NuGet 包 [1])

操作 ARM 模板 <jobName>.JobTemplate.json

为 ADLS 输出对象添加输出数据源对象 如果您使用 Visual Studio,则可以很容易地从 ADLS 输出 JSON 中获取值 将refreshToken 设置为一些虚假值很重要

如下:

"outputs": [
    
        "name": "xxx",
        "properties": 
            "serialization": 
                "type": "Json",
                "properties": 
                    "encoding": "UTF8",
                    "format": "LineSeparated"
                
            ,
            "datasource": 
                "type": "Microsoft.DataLake/Accounts",
                "properties": 
                    "accountName": "xxx",
                    "tenantId": "xxx-xxx-xxx-xxx-xxx",
                    "tokenUserPrincipalName": "xxx@xxx.com",
                    "tokenUserDisplayName": "xxx, xxx",
                    "filePathPrefix": "xxx/date/time",
                    "dateFormat": "yyyy/MM/dd",
                    "timeFormat": "HH",
                    "refreshToken": "faketoken"
                
            
        
    ,
    ...

部署 ARM 模板

作业将成功启动,但需要更新令牌,因此

停止工作

更新 ADLS 输出的身份验证

开始工作

资源

[1]CICD NuGet Package

【讨论】:

感谢分享。当我尝试使用它时,我放弃了使用 ASA,因为它包含太多的障碍。使用身份验证,一件事是您需要更新身份验证,但第二件事是用户需要处于“所有者”角色

以上是关于流分析作业 -> 数据湖输出的主要内容,如果未能解决你的问题,请参考以下文章

Azure 流分析的自定义输出路径

Hadoop 与数据湖

Flink 如何实时分析 Iceberg 数据湖的 CDC 数据

Flink 如何实时分析 Iceberg 数据湖的 CDC 数据

作业帮基于 DeltaLake 的数据湖建设实践

数据湖是什么?数据湖和数据仓库什么关系,数据湖的架构分析