Crea un pacchetto in Dataform

Questo documento mostra come creare un pacchetto JavaScript personalizzato da utilizzare per sviluppare flussi di lavoro SQL in Dataform.

Per creare un pacchetto che puoi riutilizzare in più repository Dataform, devi creare un repository Dataform dedicato al pacchetto e connetterlo a un repository Git di terze parti per renderlo disponibile ad altri repository Dataform.

Poi, devi creare un file index.js di primo livello e aggiungere al file i contenuti del pacchetto esportabile, come funzioni e costanti. Per un esempio di pacchetto creato in Dataform, vedi dataform-package-base su GitHub.

Una volta creato il pacchetto, puoi installarlo in un altro repository Dataform e utilizzare i contenuti esportabili del pacchetto, come costanti e funzioni, per sviluppare flussi di lavoro SQL.

In alternativa alla creazione di un pacchetto, puoi riutilizzare le funzioni e le costanti JavaScript in un singolo repository Dataform con inclusioni. Per saperne di più, consulta Riutilizzare variabili e funzioni con include in Dataform.

Prima di iniziare

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

    Vai alla pagina Dataform

  2. Crea un repository Dataform dedicato al tuo pacchetto. Fai corrispondere il nome del repository al nome del tuo pacchetto.

  3. Connetti il repository a un repository Git di terze parti che ospiterà il tuo pacchetto.

  4. Crea e inizializza un'area di lavoro nel repository Dataform.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare un pacchetto, chiedi all'amministratore di concederti il ruolo IAM Amministratore Dataform (roles/dataform.admin) per i repository. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Potresti anche essere in grado di ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Crea un pacchetto in Dataform

Per creare il tuo pacchetto con codice JavaScript che puoi riutilizzare in Dataform, segui questi passaggi nell'area di lavoro:

  1. Nel riquadro File, fai clic sul menu Altro.

  2. Fai clic su Crea file.

    1. Nel riquadro Crea nuovo file, procedi nel seguente modo:

    2. Nel campo Aggiungi un percorso file, inserisci index.js.

    3. Fai clic su Crea file.

  3. Nel file index.js, inserisci il codice JavaScript che vuoi che venga esportato dal pacchetto.

    1. Crea costanti nel seguente formato:

      const CONSTANT_NAME = CONSTANT_VALUE;
      module.exports = { CONSTANT_NAME };
      

      Sostituisci quanto segue:

      • CONSTANT_NAME: il nome della tua costante
      • CONSTANT_VALUE: il valore della tua costante
    2. Crea funzioni nel seguente formato:

    function FUNCTION_NAME(PARAMETERS) { FUNCTION_BODY }
    
    module.exports = { FUNCTION_NAME }
    

    Sostituisci quanto segue:

    • FUNCTION_NAME: il nome della funzione
    • PARAMETERS: i parametri della funzione
    • FUNCTION_BODY: il codice che deve essere eseguita dalla funzione
  4. (Facoltativo) Fai clic su Formato.

  5. (Facoltativo) Nella directory definitions, aggiungi il codice del pacchetto che non verrà esportato.

  6. Esegui il commit e push le modifiche.

Il seguente esempio di codice del pacchetto mostra il file index.js del pacchetto postoffice che esporta la funzione getDomain:

// filename index.js
// package name postoffice

const GENERIC_DOMAINS = "('samplemail.com','samplemail.co.uk','examplemailbox.com'";

function getDomain(email) {
  let cleanEmail = `trim(${email})`
  const domain = `substr(${cleanEmail}, strpos(${cleanEmail}, '@') + 1)`;
  return `case
            when ${domain} in ${common.GENERIC_DOMAINS} then ${cleanEmail}
            when ${domain} = "othermailbox.com" then "other.com"
            when ${domain} = "mailbox.com" then "mailbox.global"
            when ${domain} = "support.postman.com" then "postman.com"
            else ${domain}
          end`;
}

module.exports = { getDomain }

Passaggi successivi