这是我的情况
我有 Azure 表作为源,我的目标是 Azure SQL 数据库。源表看起来像这样:
| ID | 文件名 | 元数据 |
|---|---|---|
| 1 | 文件_1.txt | {“公司”:{“id”:555,“名称”:“A公司”},“质量”:[{“质量”:3,“文件名”:“file_1.txt”},{“质量”: 4、“file_name”:“未知”}]} |
| 2 | 文件_2.txt | {"公司": { "id": 231, "姓名": "公司B" }, "质量": [{"质量": 4, "文件名": "file_2.txt"}, {"质量": 3、“file_name”:“未知”}]} |
| 3 | 文件_3.txt | {“公司”:{“id”:111,“名称”:“C公司”},“质量”:[{“质量”:5,“文件名”:“未知”},{“质量”:4, "file_name": "file_3.txt"}]} |
目标表应该如下所示:
| ID | 文件名 | 公司 | 质量 |
|---|---|---|---|
| 1 | 文件_1.txt | A公司 | 3 |
| 2 | 文件_2.txt | B公司 | 4 |
| 3 | 文件_3.txt | C公司 | 4 |
这意味着我需要解析该字符串中的数据以获取新的列值,并根据源中的 file_name 列使用质量值。
我做的第一件事是创建一个复制管道,将数据从 Azure 表 1 对 1 传输到 Azure Data Lake Store 上的 parquet 文件,以便我可以将其用作数据流中的源。接下来,想法是使用派生列并使用一些表达式来获取数据,但据我所知,没有表达式将此字符串视为 JSON 对象。
因此,下一个想法可能是在此过程之前添加一个步骤,我将元数据列的内容提取到 ADLS 上的单独文件中,并使用该文件作为源或查找,并将其定义为 JSON 文件。这意味着我需要将 id 值添加到 JSON 文件,以便我能够将数据绑定回记录。 …
Azure 数据工厂数据流源中的两种源类型“数据集”和“内联”之间有什么区别?在什么情况下我应该使用其中一种而不是另一种?
我已经阅读了微软的官方文档,但我无法弄清楚:
当一种格式同时支持内联和数据集对象时,两者都有好处。数据集对象是可重用的实体,可用于其他数据流和活动(例如复制)。当您使用强化模式时,这些可重用实体特别有用。数据集不基于 Spark。有时,您可能需要覆盖源转换中的某些设置或架构投影。
当您使用灵活的模式、一次性源实例或参数化源时,建议使用内联数据集。如果您的源高度参数化,则内联数据集允许您不创建“虚拟”对象。内联数据集基于 Spark,其属性是数据流固有的。
尝试自学一些 ETL 技能,并需要一些帮助来了解完成某些任务的最佳方法。我正在尝试将我们的客户服务平台 Freshdesk 中的数据引入我们的 SQL 数据仓库。我们是一家微软公司,我使用 Microsoft Azure 数据工厂和 Microsoft 逻辑应用程序完成了一些类似的任务。逻辑应用程序代码量低/无代码,而且更直观,所以我现在尝试使用它。然而,我觉得数据工厂可能是最有效的方法(尽管目前还不能 100% 确定如何做到这一点)。任何帮助或正确方向的指出都值得赞赏。
我在 ADF 中有一个复制任务,该任务将数据从 REST API 提取到 Azure SQL 数据库中。我已经创建了映射,并拉入了集合引用,如下所示:
您会注意到运行复制任务时它仅输出 1 行(第一行)。我知道这通常是因为您正在从嵌套的 JSON 数组中提取数据,其中集合引用应该解决此问题以从数组中提取数据 - 但我一生都无法让它提取多条记录,即使在设置集合之后也是如此。
无法通过谷歌,msdn(和其他微软)文档或SO找到答案.
在Azure Data Factory中,您可以使用管道中的复制活动从数据集中获取数据.管道定义包括查询.我在文档中看到的所有查询都是简单的单表查询,没有连接.在这种情况下,数据集被定义为数据库中具有"TableName"="mytable"的表.另外,可以从存储过程中检索数据,可能允许更复杂的sql.
有没有办法在管道中定义更复杂的查询,该管道包括连接和/或转换逻辑,这些逻辑改变来自查询而不是存储过程的数据或管道.我知道您可以在数据集中指定字段,但不知道如何绕过"tablename"属性.
如果有办法,该方法会是什么?
输入是本地sql server.输出是azure sql数据库.
为清晰起见更新.
azure azure-data-factory azure-sql-database cortana-intelligence
我正在运行Data Lake - Analytics工作,我收到以下错误
错误VertexFailedFast.顶点故障触发了快速作业中止.顶点失败:SV1_Extract [0] [0],错误:顶点用户代码错误.说明Vertex因失败快速错误而失败
有人知道为什么会这样吗?
我有许多文件通过 Azure 数据工厂传输到 Azure Blob 存储。不幸的是,这个工具似乎没有为任何值设置 Content-MD5 值,所以当我从 Blob 存储 API 中提取该值时,它是空的。
我的目标是将这些文件从 Azure Blob 存储传输到 Google 存储。我在https://cloud.google.com/storage/transfer/reference/rest/v1/TransferSpec#HttpData 上看到的有关 Google Storagetransfer 服务的文档表明,如果我提供以下内容的列表,我可以轻松启动此类传输文件及其 URL、长度(以字节为单位)和每个文件的 MD5 哈希值。
好吧,我可以轻松地从 Azure 存储中提取前两个,但第三个似乎不会自动由 Azure 存储填充,我也找不到任何方法让它这样做。
不幸的是,我的其他选择看起来很有限。到目前为止的可能性:
理想情况下,我希望能够编写一个脚本,然后点击开始并不管它。我没有从 Azure 获得最快的下载速度,所以 #1 会不太理想,因为它需要很长时间。
还有其他方法吗?
我在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) 我有一个使用 AMO 库连接到 Azure 分析服务的 ac 类库。
我想使用它作为我的数据工厂管道的一部分来刷新多维数据集分区。这是通过 Azure 批处理作为自定义 .net 活动完成的。
var server = new Server();
server.Connect("Provider=MSOLAP;Data Source=asazure://uksouth.asazure.windows.net/abcd;Initial Catalog=xyz");
Run Code Online (Sandbox Code Playgroud)
在本地运行这个工作正常,但是这不会在云中运行。它目前出错,因为它不在我的用户帐户下运行。我知道我可以在连接字符串中添加用户名和密码,但如果可能的话,我更愿意给它某种形式的授权。
是否还有其他方法可以使用 Azure 分析服务进行身份验证?
我有几个要部署和定期运行的 SSIS 包。我正在关注这个 MS 教程。
接近尾声的地方有一个命令来启动集成运行时。我有点推迟,因为它说需要 20-30 分钟才能完成。所以我的主要问题是:如果我完成启动集成运行时命令但不执行任何 SSIS 包,我会被计费吗?
我在数据工厂定价中读到
不活动的管道每月收费 0.40 美元
但我还没有这方面的经验,我想确定我没有浪费我的开发津贴。
如果它真的(几乎)免费,除非我开始执行包,一旦我开始运行时,那么我应该让它继续运行吗?
另外,我在网上搜索了几次,但没有找到任何关于如何通过门户创建集成运行时的教程。真的是这样吗?
最后,我试图将这些 SSIS 包部署到与源或目标 SQL Server 无关的 SQL Server - 两台服务器都归其他人所有。可以吗?