Creare un pacchetto in Dataform

Questo documento mostra come creare un pacchetto JavaScript personalizzato che puoi 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 collegarlo 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 i contenuti del pacchetto esportabili, come funzioni e costanti. Per un esempio di un pacchetto creato in Dataform, consulta 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 unico repository Dataform con gli include. Per ulteriori informazioni, consulta Riutilizzare il codice in un singolo repository con gli include.

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. Abbina il nome del repository al nome del pacchetto.

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

  4. Crea e inizializza uno spazio 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) nei repository. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

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

Creare un pacchetto in Dataform

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

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

  2. Fai clic su Crea file.

    1. Nel riquadro Crea nuovo file:

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

    3. Fai clic su Crea file.

  3. Nel file index.js, inserisci il codice JavaScript che vuoi esportare nel pacchetto.

    1. Crea le costanti nel seguente formato:

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

      Sostituisci quanto segue:

      • CONSTANT_NAME: il nome della costante
      • CONSTANT_VALUE: il valore della costante
    2. Crea le 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 vuoi che la funzione esegua
  4. (Facoltativo) Fai clic su Formato.

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

  6. Esegui il commit e push le modifiche.

Il seguente esempio di codice del pacchetto mostra il file index.js del postoffice pacchetto 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