Acquisire dati da Google Ads

Importante

Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.

Informazioni su come creare una pipeline di inserimento gestito per inserire dati da Google Ads in Azure Databricks.

Requisiti

  • Per creare una pipeline di raccolta, è necessario soddisfare i seguenti requisiti.

    • L'area di lavoro deve essere abilitata per Unity Catalog.

    • L'ambiente di calcolo serverless deve essere abilitato per l'area di lavoro. Consulta Requisiti di calcolo serverless.

    • Se hai intenzione di creare una nuova connessione: devi avere CREATE CONNECTION i privilegi sul metastore. Consulta Gestione dei privilegi in Unity Catalog.

      Se il connettore supporta la creazione di pipeline basate sull'interfaccia utente, un amministratore può creare la connessione e la pipeline contemporaneamente completando i passaggi in questa pagina. Tuttavia, se gli utenti che creano pipeline utilizzano pipeline create tramite API o sono utenti non amministratori, un amministratore deve prima creare la connessione in Esplora Cataloghi. Vedere Connettersi alle origini di inserimento gestite.

    • Se prevedi di utilizzare una connessione esistente, devi avere privilegi USE CONNECTION sull'oggetto connessione o ALL PRIVILEGES.

    • È necessario disporre dei privilegi USE CATALOG sul catalogo di destinazione.

    • È necessario disporre di privilegi USE SCHEMA e CREATE TABLE su uno schema esistente o di privilegi CREATE SCHEMA sul catalogo di destinazione.

  • Per inserire da Google Ads, è necessario completare la procedura descritta in Configurare OAuth per l'inserimento di Google Ads.

Creare un flusso di inserimento dati

Pacchetti di automazione dichiarativa

Questa scheda descrive come distribuire una pipeline di inserimento usando bundle di automazione dichiarativa. I bundle possono contenere definizioni YAML di processi e attività, vengono gestiti tramite l'interfaccia della riga di comando di Databricks e possono essere condivisi ed eseguiti in aree di lavoro di destinazione diverse, ad esempio sviluppo, gestione temporanea e produzione. Per altre informazioni, vedere Che cosa sono i bundle di automazione dichiarativa?.

  1. Creare un bundle usando l'interfaccia della riga di comando di Databricks:

    databricks bundle init
    
  2. Aggiungere due nuovi file di risorse al bundle:

    • Un file di definizione della pipeline , ad esempio resources/google_ads_pipeline.yml.
    • File di definizione del processo che controlla la frequenza di inserimento dei dati , ad esempio resources/google_ads_job.yml.

    Vedere pipeline.ingestion_definition ed esempi.

  3. Distribuire la pipeline usando la CLI di Databricks.

    databricks bundle deploy
    

Notebook di Databricks

  1. Importare il notebook seguente nell'area di lavoro di Azure Databricks:

    Ottieni il notebook

  2. Lasciare la cella 1 così com'è.

  3. Modifica la cella due o tre con i dettagli di configurazione della pipeline, a seconda del tuo caso d'uso. Vedere pipeline.ingestion_definition ed esempi.

  4. Fare clic su Esegui tutto.

Examples

Pacchetti di automazione dichiarativa

L'opzione manager_account_id non è supportata nei bundle di automazione dichiarativa. Per configurare un ID account manager, usare invece un notebook Azure Databricks.

Il file di definizione della pipeline seguente inserisce tutte le tabelle correnti e future da un account:

resources:
  pipelines:
    pipeline_google_ads:
      name: <pipeline-name>
      catalog: <destination-catalog>
      target: <destination-schema>
      ingestion_definition:
        connection_name: <connection-name>
        objects:
          - schema:
              source_schema: <account-id>
              destination_catalog: <destination-catalog>
              destination_schema: <destination-schema>
              connector_options:
                google_ads_options:
                  lookback_window_days: <lookback-window-days>
                  sync_start_date: <sync-start-date>

Il file di definizione della pipeline seguente seleziona tabelle specifiche da un account per l'inserimento:

resources:
  pipelines:
    pipeline_google_ads:
      name: <pipeline-name>
      catalog: <destination-catalog>
      target: <destination-schema>
      ingestion_definition:
        connection_name: <connection-name>
        objects:
          - table:
            source_schema: <customer-account-id>
            source_table: <table1>
            destination_catalog: <destination-catalog>
            destination_schema: <destination-schema>
            destination_table: <destination-table>
            connector_options:
              google_ads_options:
                lookback_window_days: <lookback-window-days>
                sync_start_date: <sync-start-date>
          - table:
            source_schema: <customer-account-id>
            source_table: table2
            destination_catalog: <destination-catalog>
            destination_schema: <destination-schema>
            destination_table: <destination-table>
            connector_options:
              google_ads_options:
                lookback_window_days: <lookback-window-days>
                sync_start_date: <sync-start-date>

Di seguito è riportato un file di definizione di job di esempio:

resources:
  jobs:
    google_ads_dab_job:
      name: google_ads_dab_job
      trigger:
        # Run this job every day, exactly one day from the last run
        # See https://docs.databricks.com/api/workspace/jobs/create#trigger
        periodic:
          interval: 1
          unit: DAYS
      email_notifications:
        on_failure:
          - <email-address>
      tasks:
        - task_key: refresh_pipeline
          pipeline_task:
            pipeline_id: <pipeline-id>

Notebook di Databricks

La specifica della pipeline seguente inserisce tutte le tabelle correnti e future da un solo account.

pipeline_spec = {
  "name": "<pipeline-name>",
  "catalog": "<destination-catalog>",
  "schema": "<destination-schema>",
  "ingestion_definition": {
    "connection_name": "<connection-name>",
    "objects": [
      {
        "schema": {
          "source_schema": "<account-id>",
          "destination_catalog": "<destination-catalog>",
          "destination_schema": "<destination-schema>",
          "connector_options": {
            "google_ads_options": {
              "manager_account_id": "<manager-account-id>",
              "lookback_window_days": "<lookback-window-days>",
              "sync_start_date": "<sync-start-date>"
            }
          }
        }
      }
    ]
  }
}

json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)

La specifica della pipeline seguente seleziona tabelle specifiche da un account per l'inserimento:

pipeline_spec = {
  "name": "<pipeline-name>",
  "catalog": "<destination-catalog>",
  "schema": "<destination-schema>",
  "ingestion_definition": {
    "connection_name": "<connection-name>",
    "objects": [
      {
        "table": {
          "source_schema": "<customer-account-id>",
          "source_table": "<table1>",
          "destination_catalog": "<destination-catalog>",
          "destination_schema": "<destination-schema>",
          "destination_table": "<destination-table>",
          "connector_options": {
            "google_ads_options": {
              "manager_account_id": "<manager-account-id>",
              "lookback_window_days": "<lookback-window-days>",
              "sync_start_date": "<sync-start-date>"
            }
          }
        }
      },
      {
        "table": {
          "source_schema": "<customer-account-id>",
          "source_table": "<table2>",
          "destination_catalog": "<destination-catalog>",
          "destination_schema": "<destination-schema>",
          "destination_table": "<destination-table>",
          "connector_options": {
            "google_ads_options": {
              "manager_account_id": "<manager-account-id>",
              "lookback_window_days": "<lookback-window-days>",
              "sync_start_date": "<sync-start-date>"
            }
          }
        }
      }
    ]
  }
}

json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)

Modelli comuni

Per le configurazioni avanzate della pipeline, vedere Modelli comuni per le pipeline di inserimento gestite.

Passaggi successivi

Avvia, pianifica e imposta avvisi sulla tua pipeline. Vedere Attività comuni di manutenzione della pipeline.

Risorse aggiuntive