Installa un pacchetto in Dataform

Questo documento illustra come installare un pacchetto JavaScript in un Dataform e importarlo in un file JavaScript e un file SQLX per utilizzare il pacchetto per sviluppare flussi di lavoro SQL in Dataform.

Per utilizzare un pacchetto in Dataform, devi installarlo nel tuo repository.

Puoi installare i seguenti tipi di pacchetti in Dataform:

Quindi, per utilizzare il pacchetto in un file JavaScript o SQLX, devi importare i contenuti selezionati del pacchetto nel file. Puoi anche importare un intero in un file JavaScript o SQLX anziché i contenuti selezionati.

Per evitare problemi con l'installazione di pacchetti nell'ambiente di produzione, ti consigliamo di procedere come segue:

  • Specificare esplicitamente la versione del pacchetto in package.json, ad esempio 3.0.0. Non utilizzare altro dependencies opzioni di package.json, ad esempio >version.

  • Testa le nuove versioni del pacchetto in un ambiente non di produzione. Per ulteriori informazioni sulla configurazione di diversi ambienti del ciclo di vita del codice, consulta Gestione del ciclo di vita del codice.

Prima di iniziare

  1. Nella console Google Cloud, vai alla pagina Dataform.

    Vai alla pagina Dataform

  2. Seleziona o crea un repository.

  3. Seleziona o crea un'area di lavoro di sviluppo.

  4. Se il repository non contiene un file package.json, crea package.json e sposta il pacchetto principale Dataform.

  5. (Facoltativo) Per installare un pacchetto privato: autenticare il pacchetto privato.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per installare un pacchetto, chiedi all'amministratore di concederti Ruolo IAM dell'editor Dataform (roles/dataform.editor) nelle aree di lavoro. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.

Installa un pacchetto

Per installare un pacchetto all'interno di un repository Dataform, devi: aggiungilo come dipendenza nel file package.json.

Per aggiungere un pacchetto come dipendenza nel file package.json:

  1. Nell'area di lavoro, seleziona package.json nel riquadro File.
  2. Aggiungi il pacchetto al blocco dependencies:

    1. Aggiungi un pacchetto di Gestione dei partner di rete pubblico pubblicato nel seguente formato:

      "PACKAGE-NAME": "PACKAGE-VERSION"
      

      Sostituisci quanto segue:

      • PACKAGE-NAME con il nome del pacchetto.
      • PACKAGE-VERSION con l'ultima versione ha pubblicato un pacchetto NPM pubblico. Per evitare problemi con l'installazione dei pacchetti, specificare esplicitamente la versione, ad esempio 3.0.0.
    2. Aggiungi un pacchetto di Gestione dei partner di rete pubblico non pubblicato nel seguente formato:

      "PACKAGE-NAME": "PACKAGE-URL"
      

      Sostituisci quanto segue:

      • PACKAGE-NAME con il nome del pacchetto.
      • PACKAGE-URL con l'URL tar.gz della terza parte repository di pacchetti, ad esempio https://github.com/user/sample-package-repository/archive/master.tar.gz.
    3. Aggiungi un pacchetto di Gestione dei partner di rete privato autenticato nel seguente formato:

      "REGISTRY-SCOPE/PACKAGE-NAME": "PACKAGE-URL"
      

      Sostituisci quanto segue:

      • REGISTRY-SCOPE con il nome del pacchetto. REGISTRY-SCOPE deve corrispondere all'ambito del registry definita nel file .nmprc del tuo repository.
      • PACKAGE-NAME con il nome del pacchetto.
      • PACKAGE-URL con l'URL tar.gz del pacchetto repository di codice, ad esempio https://github.com/user/sample-package-repository/archive/master.tar.gz.
  3. Fai clic su Installa pacchetti.

  4. Esegui il commit e Esegui il push delle modifiche.

Il seguente esempio di codice mostra l'open source Pacchetto di dimensioni modificato lentamente aggiunto al file .package.json:

 ```json
 {
   "name": "repository-name",
   "dependencies": {
     "@dataform/core": "2.0.3",
     "dataform-scd": "https://github.com/dataform-co/dataform-scd/archive/0.3.tar.gz"
   }
 }
 ```

Importare una funzione o una costante pacchetto in un file JavaScript in Dataform

Per utilizzare una funzione o una costante da un pacchetto all'interno di un file JavaScript in Dataform, devi prima importarlo nel file.

Per importare una funzione o una costante da un pacchetto a un file JavaScript, segui questi passaggi:

  1. Nell'area di lavoro, nel riquadro File, seleziona un file .js in cui in cui desideri utilizzare il pacchetto.
  2. Nel file, importa una funzione o una costante nel seguente formato:

    const { EXPORT-NAME } = require("PACKAGE-NAME");
    
    1. Sostituisci EXPORT-NAME con il nome della funzione o che vuoi utilizzare, dichiarata in module.exports nel nel pacchetto index.js.
    2. Sostituisci PACKAGE-NAME con il nome di il pacchetto che vuoi utilizzare.
  3. Esegui il commit e Esegui il push delle modifiche.

Il seguente esempio di codice mostra la funzione getDomain dalla Pacchetto postoffice importato e utilizzato in un file JavaScript:

/*
 * Contents of postoffice index.js:
 * module.exports = { getDomain };
 */

const { getDomain } = require("postoffice");
getDomain();

Importare un intero pacchetto in un file JavaScript in Dataform

Per importare l'intero pacchetto in un file JavaScript anziché importarlo: funzioni o costanti selezionate in un file JavaScript, segui questi passaggi:

  1. Nell'area di lavoro, nel riquadro File, seleziona un file .js in per cui desideri utilizzare il pacchetto.
  2. Nel file, importa il pacchetto nel seguente formato:

    const CONSTANT-NAME = require("PACKAGE-NAME");
    
    1. Sostituisci CONSTANT-NAME con un nome per la costante.
    2. Sostituisci PACKAGE-NAME con il nome del pacchetto che vuoi utilizzare.
  3. Esegui il commit e Esegui il push delle modifiche.

Il seguente esempio di codice mostra la funzione getDomain dalla pacchetto postoffice importato utilizzato in un file JavaScript:

/*
 * Contents of postoffice index.js:
 * module.exports = { getDomain };
 */

const postoffice = require("postoffice");
postoffice.getDomain();

Importa una funzione o una costante pacchetto in un file SQLX in Dataform

Per utilizzare una funzione o una costante di un pacchetto all'interno di un file SQLX, devi prima importarlo nel file.

Per importare una funzione o una costante da un pacchetto a un file SQLX, segui questi passaggi:

  1. Nell'area di lavoro, nel riquadro File, seleziona un file .sqlx in cui desideri utilizzare il pacchetto.
  2. Nel file, inserisci il seguente blocco js:

    js {
      const { EXPORT-NAME } = require("PACKAGE-NAME");
    }
    
    1. Sostituisci EXPORT-NAME con il nome della funzione o la costante che vuoi utilizzare, dichiarata in module.exports nel file index.js del pacchetto.
    2. Sostituisci PACKAGE-NAME con il nome del pacchetto che vuoi utilizzare.
  3. Esegui il commit e Esegui il push delle modifiche.

Il seguente esempio di codice mostra la funzione getDomain dalla Pacchetto postoffice importato in un blocco js e utilizzato in un Istruzione SELECT in un file SQLX:

/*
 * Contents of postoffice index.js:
 * module.exports = { getDomain };
 */

config {
    type: "table",
}

js {
  const { getDomain } = require("postoffice");
}

SELECT ${getDomain("email")} as test

Importare un intero pacchetto in un file SQLX in Dataform

Per importare l'intero pacchetto in un file SQLX anziché importarlo: funzioni o costanti selezionate in un file JavaScript, segui questi passaggi:

  1. Nell'area di lavoro, nel riquadro File, seleziona un file .sqlx in cui desideri utilizzare il pacchetto.
  2. Nel file, importa il pacchetto nel seguente formato:

    js {
      const CONSTANT-NAME = require("PACKAGE-NAME");
    }
    
    1. Sostituisci CONSTANT-NAME con un nome per la costante.
    2. Sostituisci PACKAGE-NAME con il nome del pacchetto che vuoi utilizzare.
  3. Esegui il commit e Esegui il push delle modifiche.

Il seguente esempio di codice mostra il pacchetto postoffice importato in un blocco js e la sua funzione getDomain utilizzata in un Istruzione SELECT in un file SQLX:

/*
 * Contents of postoffice index.js:
 * module.exports = { getDomain };
 */

config {
    type: "table",
}

js {
  const postoffice = require("postoffice");
}

SELECT ${postoffice.getDomain("email")} as test

Passaggi successivi