AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 292715
Accepted
Michael Green
Michael Green
Asked: 2021-06-04 05:23:32 +0800 CST2021-06-04 05:23:32 +0800 CST 2021-06-04 05:23:32 +0800 CST

Como as tarefas são atribuídas às iterações ForEach

  • 772

O padrão Lookup-ForEach é comum no Azure Data Factory (ADF). Como os itens produzidos pelo Lookup são alocados aos trabalhadores do ForEach, cujo número é controlado pelo Batch Count?

azure azure-data-factory
  • 1 1 respostas
  • 161 Views

1 respostas

  • Voted
  1. Best Answer
    Michael Green
    2021-06-04T05:23:32+08:002021-06-04T05:23:32+08:00

    Eles são alocados em rodízio, na ordem em que são produzidos pelo Lookup. Embora eu não possa encontrar nenhuma documentação para afirmar isso, é minha observação. Posso reproduzi-lo de forma confiável com um exemplo simples.

    Para um novo pipeline eu adicionei uma variável de array, um ForEach, e dentro do ForEach a Wait (o pipeline JSON está incluído no final). A variável array alimenta os itens do ForEach. Embora a pergunta mencione Lookup, o resultado é o mesmo quando uma variável de matriz é usada. A duração do Wait é determinada pelos valores do array, simplesmente para espalhar as iterações ao longo do tempo para torná-las mais facilmente observáveis.

    Executei o pipeline e coletei a saída do ADF. Usei a Duração para calcular um horário de término (mostrado abaixo em mm:ss). Adicionei mais três colunas, uma para cada "trabalhador". Para entender qual trabalhador executou qual iteração eu segui as cadeias Start-End.

    Task       Start                         Duration  End    A  B  C
    ========== ============================  ========  =====  =  =  =
    9 Wait1    2021-06-01T05:17:39.6100287Z  00:01:32  19:11        c
    8 Wait1    2021-06-01T05:17:09.3290518Z  00:01:32  18:41     b
    7 Wait1    2021-06-01T05:16:40.6095309Z  00:01:32  18:12  a
    6 Wait1    2021-06-01T05:16:07.9623704Z  00:01:32  17:39        c
    5 Wait1    2021-06-01T05:15:37.7842636Z  00:01:32  17:09     b
    4 Wait1    2021-06-01T05:15:07.9421207Z  00:01:32  16:39  a
    3 Wait1    2021-06-01T05:15:06.3028589Z  00:01:02  16:08        c
    2 Wait1    2021-06-01T05:15:06.3028589Z  00:00:32  15:38     b
    1 Wait1    2021-06-01T05:15:06.2872305Z  00:00:02  15:08  a
      ForEach1 2021-06-01T05:15:05.896518Z   00:04:06
    

    Eu atribuo arbitrariamente a Tarefa 1 ao trabalhador A. Ela terminou às 15:08, então encontro uma tarefa que começou então (dentro da precisão das durações relatadas) que é a tarefa 4 e a atribuo ao trabalhador A também, e assim por diante. As tarefas 2 e 3 iniciam suas próprias cadeias de maneira semelhante. O padrão resultante é o de alocação round-robin.

    Essa análise em cargas de trabalho muito mais complicadas, envolvendo muito mais tarefas, contagens de lotes maiores e durações variadas, produz a mesma evidência para alocação round-robin. Por exemplo, servindo 21 tarefas quando o Batch Count é 20, vejo que a 21ª tarefa nunca começa até que a 1ª seja concluída.

    {
        "name": "ForEach RoundRobin Demo",
        "properties": {
            "activities": [
                {
                    "name": "ForEach1",
                    "type": "ForEach",
                    "dependsOn": [],
                    "userProperties": [],
                    "typeProperties": {
                        "items": {
                            "value": "@variables('Intervals')",
                            "type": "Expression"
                        },
                        "batchCount": 3,
                        "activities": [
                            {
                                "name": "Wait1",
                                "type": "Wait",
                                "dependsOn": [],
                                "userProperties": [],
                                "typeProperties": {
                                    "waitTimeInSeconds": {
                                        "value": "@item()",
                                        "type": "Expression"
                                    }
                                }
                            }
                        ]
                    }
                }
            ],
            "variables": {
                "Intervals": {
                    "type": "Array",
                    "defaultValue": [
                        1,
                        30,
                        60,
                        180,
                        180,
                        180,
                        180,
                        180,
                        180
                    ]
                }
            },
            "annotations": []
        }
    }
    
    • 1

relate perguntas

  • Armazém de dados Azure Sql - existe alguma maneira de ver o verdadeiro plano de consulta?

  • A consulta SQL do Azure nunca é concluída

  • A 'Falha na validação' do Azure Data Factory com a pasta não existe

  • Copie o armazenamento premium do Azure para o armazenamento padrão para redundância

  • Como posso medir quanto tempo leva uma consulta no SQL Data Warehouse do Azure

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve