Task: equi-join-detect (source dataset: Auto-BI)

Your are given a database with related tables used for business intelligence analysis. Your task is to identify all key/foreign-key join relationships between the tables for this database. Recall that a join is a relationship between two tables, that allows rows from one table to be combined with rows from another, based on a set of common join columns.
 
 
No explanation needed. Please return all join relationships in the following JSON format:
{
  "joins": [
    {
      "from_table": "table-1",
      "from_column": "column-1",
      "to_table": "table-2",
      "to_column": "column-3"
    }, 
	...
  ]
}

Tables:

Table: dCalendario
| Data                    |   Ano | Nome do Mês   | Mês Ano   |   Mês Ano n |
|:------------------------|------:|:--------------|:----------|------------:|
| 2019-12-02 00:00:00.000 |  2019 | dezembro      | dez/2019  |      201912 |
| 2019-12-03 00:00:00.000 |  2019 | dezembro      | dez/2019  |      201912 |
| 2019-12-04 00:00:00.000 |  2019 | dezembro      | dez/2019  |      201912 |
| 2019-12-05 00:00:00.000 |  2019 | dezembro      | dez/2019  |      201912 |
| 2019-12-06 00:00:00.000 |  2019 | dezembro      | dez/2019  |      201912 |
| 2019-12-07 00:00:00.000 |  2019 | dezembro      | dez/2019  |      201912 |
| 2019-12-08 00:00:00.000 |  2019 | dezembro      | dez/2019  |      201912 |
| 2019-12-09 00:00:00.000 |  2019 | dezembro      | dez/2019  |      201912 |
| 2019-12-10 00:00:00.000 |  2019 | dezembro      | dez/2019  |      201912 |
| 2019-12-11 00:00:00.000 |  2019 | dezembro      | dez/2019  |      201912 |


Table: dCaracteristica
| ID_SEGMENTACAO       | TEMPLATE   | CAMPANHA             | AGENCIA   | CARTEIRA    |   Índice_Caracteristica |
|:---------------------|:-----------|:---------------------|:----------|:------------|------------------------:|
| 01V2PFTLM1_CRCEMLPGM | ET170585   | VIVO2_PF_M1          | CRC       | M1          |                       1 |
| 01FXPFM5A7_SEREMLPGM | ET170585   | FIXA_PF_M5, M6 E M7  | SERVICES  | M5, M6 E M7 |                       2 |
| 01MVPFM5A7_SEREMLPGM | ET170585   | MOVEL_PF_M5, M6 E M7 | SERVICES  | M5, M6 E M7 |                       3 |
| 01MVPFTLM1_SEREMLPGM | ET170585   | MOVEL_PF_M1          | SERVICES  | M1          |                       4 |
| 01MVPFTLM4_SEREMLPGM | ET170585   | MOVEL_PF_M4          | SERVICES  | M4          |                       5 |
| 01MVPFTLRD_SEREMLPGM | ET170585   | MOVEL_PF_RET DEF     | SERVICES  | RET DEF     |                       6 |
| 01V2PFTLM1_SEREMLPGM | ET170585   | VIVO2_PF_M1          | SERVICES  | M1          |                       7 |
| 01V2PFTLM4_SEREMLPGM | ET170585   | VIVO2_PF_M4          | SERVICES  | M4          |                       8 |
| 01V2PFTLM2_SEREMLPGM | ET170585   | VIVO2_PF_M2          | SERVICES  | M2          |                       9 |
| 01FXPFTLM4_SEREMLPGM | ET170585   | FIXA_PF_M4           | SERVICES  | M4          |                      10 |


Table: dData
| ID_SEGMENTACAO   | DATA PROCESSAMENTO   | DATA DISPARO   | HORA_INICIAL   | HORA_FINAL   |   Índice_Calendario |
|:-----------------|:---------------------|:---------------|:---------------|:-------------|--------------------:|
|                  |                      |                |                |              |                 557 |
|                  |                      |                |                |              |                 558 |
|                  |                      |                |                |              |                 559 |
|                  |                      |                |                |              |                 560 |
|                  |                      |                |                |              |                 561 |
|                  |                      |                |                |              |                 562 |
|                  |                      |                |                |              |                 563 |
|                  |                      |                |                |              |                 564 |
|                  |                      |                |                |              |                 565 |
|                  |                      |                |                |              |                 566 |


Table: dFornecedor
| ID_SEGMENTACAO       | FORNECEDOR SECUNDARIO   | FORNECEDOR PRIMARIO   |   Índice_Fornecedor |
|:---------------------|:------------------------|:----------------------|--------------------:|
| 01V2PFTLM1_CRCEMLPGM | PGM                     | PGM                   |                   1 |
| 01V2PFTLM3_CRCEMLPGM | PGM                     | PGM                   |                   2 |
| 02V2PFESF2_CASEMLPGM | PGM                     | PGM                   |                   3 |
| 01MVPFTLM1_CRCEMLPGM | PGM                     | PGM                   |                   4 |
| 02FXPFESF1_ULTEMLPGM | PGM                     | PGM                   |                   5 |
| 02FXPFESFB_ULTEMLPGM | PGM                     | PGM                   |                   6 |
| 02FXPFESF2_ULTEMLPGM | PGM                     | PGM                   |                   7 |
| 02MVPFESF1_ULTEMLPGM | PGM                     | PGM                   |                   8 |
| 02MVPFESF2_ULTEMLPGM | PGM                     | PGM                   |                   9 |
| 02V2PFESF1_ULTEMLPGM | PGM                     | PGM                   |                  10 |


Table: dProduto_Operacao
| ID_SEGMENTACAO       | PRODUTO   | OPERACAO     |   Índice_Produto |
|:---------------------|:----------|:-------------|-----------------:|
| 01V2PFTLM1_CRCEMLPGM | VIVO2     | TELECOBRANÇA |                1 |
| 01FXPFTLM3_CASEMLPGM | FIXA      | TELECOBRANÇA |                2 |
| 01FXPFM5A7_SEREMLPGM | FIXA      | TELECOBRANÇA |                3 |
| 01MVPFTLM4_CASEMLPGM | MOVEL     | TELECOBRANÇA |                4 |
| 01MVPFTLRD_CASEMLPGM | MOVEL     | TELECOBRANÇA |                5 |
| 01MVPFTLM1_SEREMLPGM | MOVEL     | TELECOBRANÇA |                6 |
| 01MVPFTLM3_CASEMLPGM | MOVEL     | TELECOBRANÇA |                7 |
| 01V2PFTLM2_CRCEMLPGM | VIVO2     | TELECOBRANÇA |                8 |
| 01V2PFTLM3_CRCEMLPGM | VIVO2     | TELECOBRANÇA |                9 |
| 01V2PFTLM4_CRCEMLPGM | VIVO2     | TELECOBRANÇA |               10 |


Table: fDados
| ID_SEGMENTACAO       |   COTA_MENSAL |   TOTAL |   INVALIDO |   AGRUPAMENTO ENTREGUES |   AGRUPAMENTO NAO ENTREGUES |   CANCELADOS |   HIGIENIZADOS |   PROCESSADOS |   ENTREGUES_S_CONFIRMACAO |   ABERTOS |   CLICADOS |   MARCADO COM SPAM |   ASSINATURA CANCELADA |   NAO_ENTREGUES_S_CONFIRMACAO |   REJEITADOS |   NAO ACEITO |   DOMINIO NAO EXISTENTE |   Índice_Calendario |   Índice_Caracteristica |   Índice_Produto |   Índice_Fornecedor |
|:---------------------|--------------:|--------:|-----------:|------------------------:|----------------------------:|-------------:|---------------:|--------------:|--------------------------:|----------:|-----------:|-------------------:|-----------------------:|------------------------------:|-------------:|-------------:|------------------------:|--------------------:|------------------------:|-----------------:|--------------------:|
| 02FXPFESF1_ULTEMLPGM |           332 |      11 |          0 |                       4 |                           7 |            0 |              0 |            11 |                         4 |         0 |          0 |                  0 |                      0 |                             0 |            4 |            2 |                       1 |                   6 |                      66 |               48 |                   5 |
| 02FXPFESF1_ULTEMLPGM |           332 |      11 |          0 |                       4 |                           7 |            0 |              0 |            11 |                         4 |         0 |          0 |                  0 |                      0 |                             0 |            4 |            2 |                       1 |                  26 |                      66 |               48 |                   5 |
| 02FXPFESF1_ULTEMLPGM |           332 |      11 |          0 |                       4 |                           7 |            0 |              0 |            11 |                         4 |         0 |          0 |                  0 |                      0 |                             0 |            4 |            2 |                       1 |                  70 |                      66 |               48 |                   5 |
| 02FXPFESF1_ULTEMLPGM |           332 |      11 |          0 |                       4 |                           7 |            0 |              0 |            11 |                         4 |         0 |          0 |                  0 |                      0 |                             0 |            4 |            2 |                       1 |                  95 |                      66 |               48 |                   5 |
| 02FXPFESF1_ULTEMLPGM |           332 |      11 |          0 |                       4 |                           7 |            0 |              0 |            11 |                         4 |         0 |          0 |                  0 |                      0 |                             0 |            4 |            2 |                       1 |                 130 |                      66 |               48 |                   5 |
| 02FXPFESF1_ULTEMLPGM |           332 |      11 |          0 |                       4 |                           7 |            0 |              0 |            11 |                         4 |         0 |          0 |                  0 |                      0 |                             0 |            4 |            2 |                       1 |                 135 |                      66 |               48 |                   5 |
| 02FXPFESF1_ULTEMLPGM |           332 |      11 |          0 |                       4 |                           7 |            0 |              0 |            11 |                         4 |         0 |          0 |                  0 |                      0 |                             0 |            4 |            2 |                       1 |                 186 |                      66 |               48 |                   5 |
| 02FXPFESF1_ULTEMLPGM |           332 |      11 |          0 |                       4 |                           7 |            0 |              0 |            11 |                         4 |         0 |          0 |                  0 |                      0 |                             0 |            4 |            2 |                       1 |                 187 |                      66 |               48 |                   5 |
| 02FXPFESF1_ULTEMLPGM |           332 |      11 |          0 |                       4 |                           7 |            0 |              0 |            11 |                         4 |         0 |          0 |                  0 |                      0 |                             0 |            4 |            2 |                       1 |                 216 |                      66 |               48 |                   5 |
| 02FXPFESF1_ULTEMLPGM |           332 |      11 |          0 |                       4 |                           7 |            0 |              0 |            11 |                         4 |         0 |          0 |                  0 |                      0 |                             0 |            4 |            2 |                       1 |                 299 |                      66 |               48 |                   5 |


Table: Glossa╠ürio - Colunas
| COLUNA             | CONCEITO                                                                                               | EXEMPLO DE INSUMO    | DIMENSÃO OU FATO   | AGRUPAMENTO   |
|:-------------------|:-------------------------------------------------------------------------------------------------------|:---------------------|:-------------------|:--------------|
| OPERACAO           | CARTEIRA DA AÇÃO. A QUANTIDADE DETE ITENS PODE VARIAR CONMFORME ESTRATEGIAS DA VIVO                    | TELECOBRANÇA         | DIMENSÃO           | NÃO DE APLICA |
| TIPO DE ACAO       | TIPO DE ACIONAMENTO. A QUANTIDADE DETE ITENS PODE VARIAR CONMFORME ESTRATEGIAS DA VIVO                 | EMAIL                | DIMENSÃO           | NÃO DE APLICA |
| TP_PESSOA          | TIPO DE CLIENTE                                                                                        | PF                   | DIMENSÃO           | NÃO DE APLICA |
| PRODUTO            | PRODUTO DA DIVIDA. A QUANTIDADE DETE ITENS PODE VARIAR CONMFORME ESTRATEGIAS DA VIVO                   | VIVO2                | DIMENSÃO           | NÃO DE APLICA |
| CARTEIRA           | AGING DA CARTEIRA. A QUANTIDADE DETE ITENS PODE VARIAR CONMFORME ESTRATEGIAS DA VIVO                   | M1                   | DIMENSÃO           | NÃO DE APLICA |
| AGENCIA            | NOME DA AGENCIA QUE REALIZOU A AÇÃO. A QUANTIDADE DETE ITENS PODE VARIAR CONMFORME ESTRATEGIAS DA VIVO | CRC                  | DIMENSÃO           | NÃO DE APLICA |
| CAMPANHA           | CONCATENO DE CAMPOS. A QUANTIDADE DETE ITENS PODE VARIAR CONMFORME ESTRATEGIAS DA VIVO                 | VIVO2_PF_M1          | DIMENSÃO           | NÃO DE APLICA |
| STATUS             | STATUS DO ACIONAMENTO                                                                                  | FINALIZADO           | DIMENSÃO           | NÃO DE APLICA |
| ID_SEGMENTACAO     | CODIGO GERADO PARA A ABERTURA DE OUTRAS INFORMAÇÕES.                                                   | 01V2PFTLM1_CRCEMLPGM | DIMENSÃO           | NÃO DE APLICA |
| DATA PROCESSAMENTO | DATA EM QUE AS INFORMAÇÕES FORAM PROCESSADAS PARA DISPARO                                              | 02/12/2019           | DIMENSÃO           | NÃO DE APLICA |


Table: Indicadores - Relativos
| Column1      | Column2                            |
|:-------------|:-----------------------------------|
| INDICADOR    | CÁLCULO                            |
| % BLOQUEADOS | =(INVALIDOS+HIGIENIZADO)/TOTAL     |
| % CANCELADOS | =CANCELADOS/PROCESSADOS            |
| % ENVIADOS   | =PROCESSADOS/TOTAL                 |
| % ENTREGUES  | =AGRUPAMENTO ENTREGUES/PROCESSADOS |


Table: Medidas


 


tables: name: dCalendario
data: dCalendario.csv
name: dCaracteristica
data: dCaracteristica.csv
name: dData
data: dData.csv
name: dFornecedor
data: dFornecedor.csv
name: dProduto_Operacao
data: dProduto_Operacao.csv
name: fDados
data: fDados.csv
name: Glossa╠ürio - Colunas
data: Glossa╠ürio - Colunas.csv
name: Indicadores - Relativos
data: Indicadores - Relativos.csv
name: Medidas
data: Medidas.csv
label: fDados
Índice_Calendario
dData
Índice_Calendario
fDados
Índice_Caracteristica
dCaracteristica
Índice_Caracteristica
fDados
Índice_Fornecedor
dFornecedor
Índice_Fornecedor
fDados
Índice_Produto
dProduto_Operacao
Índice_Produto
dData
DATA PROCESSAMENTO
dCalendario
Data
output: {
    "joins": [
        {
            "from_table": "fDados",
            "from_column": "\u00cdndice_Calendario",
            "to_table": "dData",
            "to_column": "\u00cdndice_Calendario"
        },
        {
            "from_table": "fDados",
            "from_column": "\u00cdndice_Caracteristica",
            "to_table": "dCaracteristica",
            "to_column": "\u00cdndice_Caracteristica"
        },
        {
            "from_table": "fDados",
            "from_column": "\u00cdndice_Fornecedor",
            "to_table": "dFornecedor",
            "to_column": "\u00cdndice_Fornecedor"
        },
        {
            "from_table": "fDados",
            "from_column": "\u00cdndice_Produto",
            "to_table": "dProduto_Operacao",
            "to_column": "\u00cdndice_Produto"
        },
        {
            "from_table": "dData",
            "from_column": "DATA PROCESSAMENTO",
            "to_table": "dCalendario",
            "to_column": "Data"
        }
    ]
}