Installazione e utilizzo di dbt-watsonx-presto

Questa sezione illustra i passaggi per installare e utilizzare dbt-watsonx-presto.

Procedura

  1. Eseguite il seguente comando sul vostro sistema per installare dbt-watsonx-presto.

    pip install dbt-watsonx-presto
    
  2. Eseguire il seguente comando per verificare la versione di dbt.

    dbt –version
    
  3. Eseguite il seguente comando per creare un progetto dbt.

    dbt init <project_name>
    
    1. Selezionare un numero Presto e inserirlo. Esempio: per [1] watsonx_presto, inserire 1.
    2. Se esiste già un progetto con lo stesso nome, è necessario confermare se sovrascrivere profiles.yml. Digitare Y per confermare o N per scartare.
  4. Impostare il file profiles.yml. Per ulteriori informazioni, vedere Configurazione(impostazione del profilo).

  5. Per verificare la connessione, eseguire:

    cd <project_name>
    dbt debug
    
  6. Creare un file CSV nella cartella seeds per seminare i dati in watsonx.data. Ad esempio:

    id, value
    1,100
    2,200
    3,300
    4,400
    

    È possibile che si verifichino errori durante l'esecuzione dei file seed, perché dbt non è in grado di gestire tutti i tipi di dati in base ai dati del connettore. Per risolvere questo problema, è possibile definire esplicitamente i tipi di dati che dbt deve utilizzare. Andare a <nome_progetto>/dbt_project.yml e aggiungere:

    seeds:
      <project_name>:
        <seed_file_name>:
          +column_types:
            <col_1>: datatype
            <col_2>: datatype
    

    Ad esempio:

    seeds:
      demo:
        sample:
          +column_types:
            value: VARCHAR(20)
    

    I nomi delle colonne specificati qui devono corrispondere alle colonne dei file CSV.

    Non utilizzare spazi extra nei file CSV per la semina. Se si includono spazi extra, è necessario utilizzare lo stesso numero di spazi durante la query che nei modelli per evitare errori.

  7. Eseguire i semi utilizzando il seguente comando per creare una tabella e inserire i dati.

    cd <project_name>
    dbt run
    
  8. In <project_name>/models, ci sono i modelli che eseguono le operazioni. Per impostazione predefinita, dbt imposta le operazioni come view. È possibile creare le tabelle o le viste con uno dei seguenti metodi:

    • Specificare all'interno dei modelli (applicabile solo per quel modello)

      {{ config(materialized='table/view') }}
      

      Se questa dichiarazione viene commentata con (--), dbt continua a usare la configurazione. Per disabilitarlo, rimuoverlo completamente o commentarlo in stile Jinja ({# … #}).

    • Specificare in dbt_project.yml (applicabile a tutti i modelli)

      models:
        <project_name>:
          <model_folders>:
            +materialized: table/view
      

      Ad esempio:

      models:
        demo:
          example:
            +materialized: table
      

      All'interno dei modelli sono supportate solo le dichiarazioni select.

    Il carattere punto e virgola (;) è limitato nei modelli.

  9. Eseguire i modelli utilizzando il seguente comando per creare le tabelle o le viste.

    cd <project_name>
    dbt run
    

    È inoltre possibile specificare i test desiderati:

    models:
      - name: <model_name>
        description: "some description"
        columns:
          - name: <col_name>
            description: "some description"
            data_tests:
              - <test_name_1>
              - <test_name_2>
    

    Ad esempio:

    models:
      - name: my_first_dbt_model
        description: "A starter dbt model"
        columns:
          - name: id
            description: "The primary key for this table"
            data_tests:
              - unique
              - not_null
    

    I connettori devono supportare Create Table as Select (CTAS) affinché le esecuzioni dbt funzionino.

  10. Per generare i documenti relativi alle azioni eseguite, eseguire:

    cd <project_name>
    dbt docs generate
    dbt docs serve
    

    Per impostazione predefinita, viene eseguito su localhost:8080. Per modificare la porta, eseguire:

    dbt docs serve –-port <port_number>