我刚刚在 msdn 杂志上阅读了有关 U-SQL 的精彩文章。
U-SQL 是在 microsoft azure 中分析大数据的好工具。
但是,是否可以在非云环境中使用它,例如在本地托管的 SQL Server 中?
我正在尝试使用以下U-SQL EXTRACT语句从CSV文件中提取一些数据:
EXTRACT SessionId string,
Latitude double,
Longitude double,
Timestamp int
FROM "wasb://sessions@myaccount.blob.core.windows.net/"
USING Extractors.Csv();
Run Code Online (Sandbox Code Playgroud)
但是我的工作中途失败了,因为有一行不适合这种模式(在大型数据集中很常见),因为它的列数错误.如何避免整个提取物失败?
我已经为 NetCDF 文件实现了一个自定义提取器,并在输出变量之前将变量加载到内存中的数组中。有些数组可能很大,所以我想知道 ADLA 中的内存限制是多少。您可以分配一些最大内存量吗?
我在ADF的管道中运行USQL活动时遇到以下错误:
活动错误:
{"errorId":"E_CSC_USER_SYNTAXERROR","severity":"Error","component":"CSC",
"source":"USER","message":"syntax error.
Final statement did not end with a semicolon","details":"at token 'txt', line 3\r\nnear the ###:\r\n**************\r\nDECLARE @in string = \"/demo/SearchLog.txt\";\nDECLARE @out string = \"/scripts/Result.txt\";\nSearchLogProcessing.txt ### \n",
"description":"Invalid syntax found in the script.",
"resolution":"Correct the script syntax, using expected token(s) as a guide.","helpLink":"","filePath":"","lineNumber":3,
"startOffset":109,"endOffset":112}].
Run Code Online (Sandbox Code Playgroud)
这是输出数据集,管道和USQL脚本的代码,我试图在管道中执行.
OutputDataset:
{
"name": "OutputDataLakeTable",
"properties": {
"published": false,
"type": "AzureDataLakeStore",
"linkedServiceName": "LinkedServiceDestination",
"typeProperties": {
"folderPath": "scripts/"
},
"availability": {
"frequency": "Hour",
"interval": 1
}
}
Run Code Online (Sandbox Code Playgroud)
管道:
{
"name": "ComputeEventsByRegionPipeline",
"properties": {
"description": "This …Run Code Online (Sandbox Code Playgroud) 我不想将ADL和ADLA用作黑盒子.我需要了解齿轮如何旋转发动机罩以便以有效的方式使用它.
我可以在哪里找到描述内部的信息:
存在很多描述RDBMS引擎内部的书籍和whitepapper.ADL/ADLA是否存在?
有很多人在Azure工作.你能否按原样发布任何草稿/ whitepapper(unoficially).
有没有办法将U-SQL结果直接输出到SQL DB,如Azure SQL DB?无法找到更多相关信息.
谢谢!
我需要使用定义的开始日期和结束日期之间的所有日期填充行集.如果我的开始日期是2017年7月19日,结束日期是2017年7月21日,则行集应包含19/7/2017,20/7/2017和21/7/2017.
我想知道是否有一种使用U-SQL的简单方法
我有自定义提取器,我正在尝试从中记录一些消息.
我尝试过类似的东西Console.WriteLine,但找不到输出的位置.但是,我发现了一些系统日志adl://<my_DLS>.azuredatalakestore.net/system/jobservice/jobs/Usql/.../<my_job_id>/.
我该如何记录某些内容?是否可以在Data Lake Store或Blob存储帐户的某处指定日志文件?
Azure Data Lake Analytics和U-SQL支持使用While或For循环并创建多个输出吗?我希望使用一个USQL执行输出到多个文件.
这就是我要的:
Foreach @day in @days
@dataToSave =
SELECT day AS day,
company AS Company,
FROM @data
WHERE @day = @day
@out = @day + ".txt"
OUTPUT @dataToSave
TO @out
USING Outputters.Text();
Next
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用powershell,但我认为这会耗费性能来准备执行.
一直在考虑使用Azure Data Lake Analytics功能来尝试和操作我存储在Azures Blob存储中的一些Gzip的xml数据,但我遇到了一个有趣的问题.本质上,当在本地使用U-SQL处理这些xml文件中的500个时,处理时间非常快,在本地使用1 AU大约需要40秒(这似乎是限制).但是,当我们使用5 AU在Azure中运行相同的功能时,处理需要17分钟以上.
我们最终想要将其扩展到大约20,000个文件甚至更多但是已经减少了设置以尝试和测量速度.
每个文件包含50个xml对象的集合(子元素中包含不同数量的详细信息),Gzip时文件大约为1 MB,而不是5MB到10MB之间.99%的处理时间都花在了u-sql脚本的EXTRACT部分.
事情尝试过,
在处理之前解压缩文件,这与压缩版本大致相同,当然远不及我在本地看到的40秒.将数据从Blob存储移动到Azure Data Lake存储,花费的时间完全相同.暂时从文件中删除了大约一半的数据并重新运行,令人惊讶的是,这也没有花费超过一分钟的时间.添加更多AU以增加处理时间,这非常有效,但由于可能产生的成本而不是长期解决方案.在我看来,从Azure Blob存储/ Azure数据湖获取数据时,似乎存在一个主要瓶颈.我错过了一些明显的东西.
PS如果您需要更多信息,请告诉我.
谢谢,
缺口.