English 中文(简体)
为什么我的“工厂”数据流与储存不成固定错误?
原标题:Why is my Azure Data Factory data flow failing with store is not defined error?

在实施数据流动时,消除这一错误。 我已经准确地提供了所有数据流参数,如管道、管道。

Job failed due to reason: com.microsoft.dataflow.Issues: DF-ARG-007 - store is not defined - EXE-0001,Dataflow cannot be analyzed as a graph,[564 737],
source(
) ~> dummy
DF-EXPR-012 - Parameter value for FileName missing - [418 464 564 737],com.microsoft.dataflow.Parameter@597aa1ed,EXE-0001,Dataflow cannot be analyzed as a graph,
dummy derive(
) ~> derivedColumn1
DF-EXPR-012 - Parameter value for PipelineStartTime missing - [418 473 564 737],EXE-0001,Dataflow cannot be analyzed as a graph,
dummy derive(
) ~> derivedColumn1,com.microsoft.dataflow.Parameter@5954ed58
DF-EXPR-012 - Parameter value for PipelineEndTime missing - EXE-0001,Dataflow cannot be analyzed as a graph,com.microsoft.dataflow.Parameter@1819981a,
dummy derive(
) ~> derivedColumn1,[418 473 564 737]
DF-EXPR-012 - Parameter value for NoRowsRead missing - [418 473 564 737],EXE-0001,Dataflow cannot be analyzed as a graph,com.microsoft.dataflow.Parameter@47c44f0c,
dummy derive(
) ~> derivedColumn1
DF-EXPR-012 - Parameter value for Status missing

我所做的工作

The data flow that I created takes the values from the copy activity as parameters and I supplied all the parameter values correctly such as PipelineStartTime, PipelineEndTime,Status, Errors etc. But the data flow is failing by giving this error. Before giving the errors variable as parameter it was working fine but after that it started to give such errors.

对于错误变量,我提供了这一数值:

@concat( " ,replace(substring(activity( Copy data1 ).output.errors[0].Message, 0,100 ), 
|
|
  ,   ), " )

如何解决这一问题?

最佳回答

我遇到了同样的错误(DF-ARG-007-仓库没有定义)。 在我的案件中,我要交出一个名字,其中仅举一字,引自“For-Each loop”(直线参数)管道的数据。 经过数小时的检查和测试,我现在责怪数据工厂可能将其内部编码。

Summary
The name field I needed to process contained a quote, e.g. "Miles O Brian":

Symptom
Inside monitor something like below is displayed (note the double-quotation of name):

{
"dataflow": {
    "referenceName": "PostProcessContact",
    "type": "DataFlowReference",
    "parameters": {
        "accountid": " 12345678-abcd-1234-abcd-123456789abc ",
        "name": " Miles O  Brian ",
        ...
    },
    ...
}

<><>>

Job failed due to reason: com.microsoft.dataflow.Issues: DF-ARG-007 - store is not defined - source( ) ~> dummysource,EXE-0001,Dataflow cannot be analyzed as a graph,[564 737] DF-ARG-007 - store is not defined - EXE-0001,Dataflow cannot be analyzed as a graph, operation sink( ) ~> parentaccountid,[564 737]

Potential, related DF-activity
In the called flow I am using a dummy source without records as I want to build a record solely on the parameters given.

"source(useSchema: false,",
"     allowSchemaDrift: true,",
"     validateSchema: false,",
"     inferDriftedColumnTypes: true,",
"     ignoreNoFilesFound: true,",
"     format:  json ,",
"     fileSystem:  power-platform-dataflows ,",
"     fileName:  nuxnildummy.json ,",
"     documentForm:  singleDocument ) ~> dummysource",

Workaround
In my case, I was able to solve the problem by replacing the single quote in my input string with ‘ which is char(145). Not a nice solution but it works and I carry over the name just for reference.

// Previous Assignment: 
" @item()[ name ] ",

// Fixed Assignment:
" @{if(equals(item()[ name ], null), null, replace(item()[ name ],     ,  ‘ ))} ",

Conclusion
Although the workaround is OK in my situation, it is still a bad implementation, therefore @Microsoft:

  • Would be great, if this issue will be addressed in a future update.
  • Would be great, if an in-memory JSON source would be added which doesn t require one to create dummy-sources in Flowlets (e.g. casting an array of records like [{}, {}, ...] into a useable table).
问题回答

I had encountered " DF-ARG-007 - store is not defined " , when passing a query statement created in Azure Synapse Piplines into Dataflow where extra " " get added like below :

Example : If statement is simple : " SELECT * FROM DBO.table " there is no issue

但是,如果说是声明的话,那么声明就是声明。

SELECT * FROM DBO.table WHERE ModifiedDate >=  1990-01-01 00:00:00.000 

转换成

" SELECT * FROM DBO.table WHERE ModifiedDate >=  1990-01-01 00:00:00.000  " -- notice 2 single quotes at the end

Solution

  1. Before sending it to Dataflow convert SELECT * FROM DBO.table WHERE ModifiedDate >= 1990-01-01 00:00:00.000 to SELECT * FROM DBO.table WHERE ModifiedDate >= ^^1990-01-01 00:00:00.000^^

使用:@replace(活性)(选择Qery )output? 书状,^ 活动

  1. In the Dataflow , first remove all single quotes ( ) and replace ^^ to back to . replace(replace($query," ",""),"^^"," ")

因此,查询不违反或没有条款。





相关问题
Sitecore not resolving rich text editor URLS in page renders

We re having issues inserting links into rich text in Sitecore 6.1.0. When a link to a sitecore item is inserted, it is outputted as: http://domain/~/link.aspx?_id=8A035DC067A64E2CBBE2662F6DB53BC5&...

Should I parse git status or use gitsharp?

I d like to integrate git into production pipeline to stage 3dsmax files. While it is alright to work with git through TortoiseGit, I d like to communicate with it from the Maxscript to add custom ...

XNA: Dynamic content loading without Game Studio installed?

I d like to enable my game to load content (such as a model, a jpg file, etc.) during run-time and display them. I looked at the sample on XNA website (http://creators.xna.com/en-US/sample/...

C# Stream Design Question

I have an appliction right now that is a pipeline design. In one the first stage it reads some data and files into a Stream. There are some intermediate stages that do stuff to the stream of data. And ...