流分析作业 -> 数据湖输出
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
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,因为它包含太多的障碍。使用身份验证,一件事是您需要更新身份验证,但第二件事是用户需要处于“所有者”角色以上是关于流分析作业 -> 数据湖输出的主要内容,如果未能解决你的问题,请参考以下文章
Flink 如何实时分析 Iceberg 数据湖的 CDC 数据