1.3.6 • Published 4 years ago

npm-mssqlbulksupport v1.3.6

Weekly downloads
2
License
ISC
Repository
-
Last release
4 years ago

Introduction

Este package tem como objetivo suportar o bulk insert do mssql

Installation

npm i npm-mssqlbulksupport

Functions

getBulkFromTable

  • Criar uma tabela (Dimensão) do tipo sql.Table para ser usada no bulk, esta tabela vai alimentar uma dimensão no data warehouse;
  • Vai a base de dados destino buscar os atributos e os seus tipos.

Input

  • Conn: String de conexão a base de dados;
  • tableName: Nome da tabela;

Output:

Objeto com:

  • tempDim: Retorna um objecto do tipo "sql.Table"
  • listOfAtrib: Retorna um array com ordem pela qual os atributos foram adicionados, este array vai permitir saber qual ordem a seguir para adicionar cada row da tabela.

getBulkFromNewTable

  • Criar uma tabela (Lookup Table),do tipo sql.Tabl, para ser usada no bulk, esta tabela é conhecida como lookup table e vai fazer o mapeamento entre as Surrogate Keys e Natural Keys;
  • Vai a base de dados destino buscar os atributos e os seus tipos.

Input

  • lookupName: Nome da tabela;
  • atributes: atributos a ser adicionados a lookup table.

Output:

Objeto:

  • lookup_table: Retorna um objecto do tipo "sql.Table".
  • listOfLookupAtrib: Retorna um array com ordem pela qual os atributos foram adicionados, este array vai permitir saber qual ordem a seguir para adicionar cada row da tabela.

getBulkFromTables

  • Cria uma tabela, do tipo sql.Table, para ser usada no bulk. Esta tabela tem a estrutura indicada pelo utilizador no output.
  • Vai a fonte buscar o tipo de dados de cada atributo.

Input

  • conn: string para conexao a base de dados das tabelas;
  • outputTableName: Nome da tabela;
  • table1: nome do primeiro objeto/tabela usado nesta operação;
  • table2: nome do segundo objeto/tabela usado nesta operação
  • atributesProjection: atributos a ser adicionados na tabela resultante(Projeção).

Output:

  • tempTable: Retorna um objecto do tipo "sql.Table"
  • listOfAtrib: Retorna um array com ordem pela qual os atributos foram adicionados; este array vai permitir saber qual ordem a seguir para adicionar cada row da tabela;
  • select: retorna uma string para ser usada na projeçao quando feita a query a fonte.

getBulkFromPartOfTable

  • Cria uma tabela, do tipo sql.Table, para ser usada no bulk. Esta tabela tem a estrutura indicada pelo utilizador no output.
  • Vai a fonte buscar o tipo de dados de cada atributo.

Input

  • conn: string para conexao a base de dados das tabelas;
  • outputTableName: Nome da tabela;
  • atributesProjection: atributos a ser adicionados na tabela resultante(Projeção).

Output:

  • tempTable: Retorna um objecto do tipo "sql.Table"
  • listOfAtrib: Retorna um array com ordem pela qual os atributos foram adicionados; este array vai permitir saber qual ordem a seguir para adicionar cada row da tabela;
  • select: retorna uma string para ser usada na projeçao quando feita a query a fonte.

Quick Example

var bulkSupport = require("npm-mssqlbulksupport");
/**
 * Exemplo da criação de uma dimensao;
 */
async function testeBulkFromTable(){
    try {
       var result= await bulkSupport.getBulkFromTable("Server="MyServer";User Id="MyId";Password="MyPass";database="teste";encrypt=true;", "dim_customer");
    } catch (e) {
        console.log(e);
    }
}
/**
 * Exemplo da criação de uma lookupTable;
 */
async function testeBulkFromNewTable(){
    var atributes=[ { name: 
                        [ 'customer_id' ], 
                        type: [ 'int' ] 
                } ]
    try {
       var result= await bulkSupport.getBulkFromNewTable("dim_customer","customer_Key",atributes);
    } catch (e) {
        console.log(e);
    }
}

/**
 * Exemplo da criação de uma operação de join;
 */
async function testeBulkFromTables(){
    var atributesProjection=[
                        {
                            pk: [ 'true' ],
                            table: [ 'Vendas_Linhas' ],
                            name: [ 'inCodigo' ],
                            rename: [ 'CodVenda' ]
                        },
                        {
                            table: [ 'Vendas_Linhas' ],
                            name: [ 'dhDate' ],
                            rename: [ 'Data' ]
                        },
                        {
                            table: [ 'Vendas_Cabeçalho' ],
                            name: [ 'teLocalidade' ],
                            rename: [ 'Localidade' ]
                        },
                        {
                            table: [ 'Vendas_Cabeçalho' ],
                            name: [ 'loInterna' ],
                            rename: [ 'Interna' ]
                        }
                        ]
    try {
       var result= await bulkSupport.getBulkFromTables("Server="MyServer";User Id="MyId";Password="MyPass";database="teste";encrypt=true;","Vendas","Vendas_Linhas","Vendas_Cabeçalho",atributesProjection);
    } catch (e) {
        console.log(e);
    }
}

function testeBulkFromPartOfTable(){
    var atributesProjection=['inCodigo' ,
                            'dhDate',
                            'teLocalidade' ,
                             'loInterna' ]
        try {
        var result= await bulkSupport.getBulkFromTables("Server="MyServer";User Id="MyId";Password="MyPass";database="teste";encrypt=true;","Vendas",atributesProjection);
        } catch (e) {
            console.log(e);
        }

}
testeBulkFromTable();
testeBulkFromNewTable();
testeBulkFromTables();
testeBulkFromPartOfTable();
1.3.6

4 years ago

1.3.5

4 years ago

1.2.5

4 years ago

1.2.4

4 years ago

1.2.3

4 years ago

1.2.2

4 years ago

1.2.1

4 years ago