繁体   English   中英

在Azure数据工厂中动态选择存储表

[英]Dynamic selection of storage table in azure data factory

我有一组现有的azure存储表,每个客户端一个,可以在多租户云系统中保存事件。

例如,可能有3个表可保存登录信息:

ClientASignins ClientBSignins ClientCSignins

有没有一种方法可以在复制操作中或在Pig脚本中动态循环这些?

还是有另一种方式来达到这个结果?

非常感谢!

如果您在其他位置(例如Azure存储)跟踪这些表,则可以使用PowerShell遍历每个表并在每个表上创建一个配置单元表。 例如:

foreach($t in $tableList) {
    $hiveQuery = "CREATE EXTERNAL TABLE $t(IntValue int)
 STORED BY 'com.microsoft.hadoop.azure.hive.AzureTableHiveStorageHandler'
 TBLPROPERTIES(
  ""azure.table.name""=""$($t.tableName)"",
  ""azure.table.account.uri""=""http://$storageAccount.table.core.windows.net"",
  ""azure.table.storage.key""=""$((Get-AzureStorageKey $storageAccount).Primary)"");"
Out-File -FilePath .\HiveCreateTable.q -InputObject $hiveQuery -Encoding ascii
$hiveQueryBlob = Set-AzureStorageBlobContent -File .\HiveCreateTable.q -Blob "queries/HiveCreateTable.q" `
  -Container $clusterContainer.Name -Force
$createTableJobDefinition = New-AzureHDInsightHiveJobDefinition -QueryFile /queries/HiveCreateTable.q
$job = Start-AzureHDInsightJob -JobDefinition $createTableJobDefinition -Cluster $cluster.Name
Wait-AzureHDInsightJob -Job $job
#INSERT YOUR OPERATIONS FOR EACH TABLE HERE
}

研究: http//blogs.msdn.com/b/mostlytrue/archive/2014/04/04/analyzing-azure-table-storage-data-with-hdinsight.aspx

如何使用Powershell管理Azure表?

最后,我选择了一些用c#编写的Azure Data Factory自定义活动,现在我的工作流程是:

  1. 自定义活动:将当前切片的数据汇总到单个Blob文件中,以便在Pig中进行分析。
  2. HDInsight:使用猪进行分析
  3. 自定义活动:将数据分散到从Blob存储到表存储的目标表数组。

我这样做是为了使管道尽可能简单,并消除了重复管道/脚本的需要。

参考文献:

在Azure数据工厂管道中使用自定义活动

HttpDataDownloader示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM