Condividi tramite


Uso di Lakebase con le app Databricks

Importante

La scalabilità automatica di Lakebase è la versione più recente di Lakebase, con calcolo autoscalabile, scalabilità fino a zero, ramificazione e ripristino immediato. Per le aree supportate, vedere Disponibilità dell'area. Se sei un utente provisioning di Lakebase, vedere Lakebase provisioning.

Databricks Apps consente di compilare ed eseguire applicazioni interattive direttamente nell'area di lavoro. Quando si aggiunge Lakebase come risorsa, Databricks gestisce l'intera catena di autenticazione: viene creata un'entità servizio per l'app, viene concesso un ruolo Postgres corrispondente e i dettagli di connessione vengono inseriti come variabili di ambiente. L'app si connette a un database Postgres completamente gestito senza gestire credenziali o stringhe di connessione.

Diagramma dell'architettura che illustra l'integrazione tra client, app Databricks e Lakebase

Questa guida illustra come distribuire un'app modello connessa a un database Lakebase. Al termine, avrai un'app funzionante con dati che puoi esaminare ed eseguire query direttamente da Lakebase e, facoltativamente, registrare in Unity Catalog insieme ai dati della lakehouse.

Annotazioni

È necessario accedere a un'area di lavoro di Databricks con Lakebase abilitato (contattare l'amministratore dell'area di lavoro, se necessario), l'autorizzazione per creare risorse di calcolo e app e acquisire familiarità di base con Python e SQL.

Passaggio 1: Effettuare il provisioning di un'istanza di Lakebase

Un progetto Lakebase è un'istanza di Postgres gestita a cui l'app si connette come risorsa. I progetti sono organizzati in rami, ognuno dei quali rappresenta un ambiente di database isolato.

Prima di creare il progetto, assicurarsi che l'area di lavoro disponga di risorse di calcolo serverless abilitate. Se non è possibile apportare questa modifica manualmente, contattare l'amministratore.

Per creare un progetto: icona dell'app. Commutatore app → Lakebasescalabilità automaticaCrea progetto → accettare le impostazioni predefinite

Il progetto viene creato con un production ramo e un databricks_postgres database.

Passaggio 2: Creare un'app Databricks dal modello

I modelli gestiscono la complessità dell'infrastruttura: il pool di connessioni, l'aggiornamento del token OAuth e la gestione degli errori sono già incorporati. Se invece hai bisogno di un'app completamente personalizzata, vedi Scrivere un'app personalizzata.

Sono disponibili tre modelli di app todo per la scalabilità automatica per Lakebase: Dash, Flask e Streamlit. Passare a Nuova > app per aprire l'interfaccia di creazione dell'app e selezionare il modello preferito nella scheda Database .

Modello di app Flask + Lakebase Autoscaling

Passaggio 3: Configurare la risorsa di database

L'aggiunta di Lakebase come risorsa esegue due operazioni: crea un'entità servizio con le autorizzazioni corrette per il database e inserisce i dettagli della connessione come variabili di ambiente nell'app. Questo è ciò che consente al modello di connettersi automaticamente al database, senza stringhe di connessione nel codice.

Nel passaggio Configura selezionare il database e le dimensioni di calcolo per l'app. Per informazioni dettagliate sull'aggiunta di risorse di database, vedere Aggiungere una risorsa Lakebase a un'app Databricks.

Configurazione delle risorse del database che mostra la selezione di progetto, ramo e database

In Risorse dell'app selezionare il progetto Lakebase, il ramo e il database. I nomi dei rami vengono visualizzati come ID: se sono state accettate le impostazioni predefinite nel passaggio 1, è necessario scegliere un solo ramo (produzione). Per altri progetti o per trovare la corrispondenza tra ID e nomi, vedere la pagina delle branche del progetto.

In Dimensioni di calcolo, per questa guida si seleziona Media. Si noti che si tratta del calcolo del server app, separato dal calcolo del database Lakebase , che viene ridimensionato in modo indipendente.

Passaggio 4: Esaminare le autorizzazioni

Ogni app Databricks viene eseguita come un service principal, un'identità dedicata autonoma rispetto a qualsiasi singolo utente. Quando si connette Lakebase come risorsa, Databricks crea automaticamente un ruolo Postgres corrispondente per tale entità servizio e concede all'entità servizio dell'app l'accesso al database necessario per connettersi, creare il proprio schema e leggere e scrivere dati, senza alcuna configurazione manuale del ruolo.

Verifica dell'autorizzazione che mostra le autorizzazioni dell'entità servizio

L'autorizzazione utente (anteprima) consente all'app di agire per conto dell'utente connesso anziché della propria entità servizio, utile quando utenti diversi devono visualizzare dati diversi in base alle singole autorizzazioni. Per questo modello non sono necessari ambiti utente aggiuntivi. Per abilitare l'accesso per conto dell'utente in un secondo momento, vedere Autorizzazione utente.

Passaggio 5: Assegnare un nome all'app e installare

Il nome dell'app scelto qui diventa parte del nome dello schema creato automaticamente da Lakebase nel database. L'ID client è l'identità del servizio principale assegnata alla tua app, senza trattini. È possibile rinominare lo schema in un secondo momento in Lakebase, ma il nome dell'app non può essere modificato dopo la creazione. Per impostazione predefinita, il modello è lakebase-autoscaling-app.

App name:           lakebase-autoscaling-app

Service principal:  aeb6ff91-98ff-4752-af7d-fc6d4cf570d0

                                    ↓
                          (same ID, hyphens removed)

Schema name:        lakebase-autoscaling-app_schema_aeb6ff9198ff4752af7dfc6d4cf570d

Conferma o modifica il nome dell'app, esamina la descrizione precompilata e, se lo desideri, imposta un criterio di utilizzo serverless. Fare clic su Installa per creare la configurazione dell'app.

Passaggio 6: Distribuire l'app

Dopo aver fatto clic su Installa, il calcolo viene avviato automaticamente e l'app viene distribuita senza ulteriori azioni. Questa operazione richiede 2-3 minuti. Quando lo stato dell'app è In esecuzione, fare clic sull'URL accanto per aprire l'app. Per il flusso di lavoro di sviluppo completo, tra cui lo sviluppo locale e la ridistribuzione, vedere Sviluppare app Databricks.

Panoramica dell'app che mostra lo stato in esecuzione e il calcolo attivo

Usare il pulsante Distribuisci per ridistribuire dopo aver apportato modifiche al codice. Se una distribuzione non riesce, controllare la scheda Distribuzioni . Il passaggio che ha avuto esito negativo (ad esempio, "Pacchetti installati" o "App avviata") indica dove cercare.

Passaggio 7: Verificare l'integrazione

Apri la tua app all'URL fornito e aggiungi alcune attività. Nel progetto Lakebase aprire Tabelle e selezionare la tabella todos nello schema dell'app. Le righe sono presenti, scritte dal principal di servizio dell'app utilizzando i dettagli di connessione iniettati nel passaggio 3.

Visualizzazione Tabelle Lakebase che mostra le attività scritte dall'applicazione

Per eseguire query personalizzate sui dati, usare l'editor SQL nel progetto Lakebase. Lakebase viene ridimensionato su zero dopo un periodo di inattività, quindi dopo un periodo di tempo si potrebbe trovare la prima richiesta richiede alcuni secondi mentre il database si riscalda. Per altre opzioni di connessione, vedere Connessione al progetto Lakebase.

Passaggio 8: Eseguire query tramite il catalogo Unity (facoltativo)

Per impostazione predefinita, i dati Lakebase dell'app sono accessibili direttamente tramite le connessioni Postgres. La registrazione in Unity Catalog lo rende interrogabile insieme ai dati del lakehouse utilizzando SQL Databricks standard, consentendo la combinazione delle tabelle transazionali dell'app e delle tabelle Delta nella stessa query.

Per eseguire la registrazione, aprire Esplora cataloghi e creare un nuovo catalogo. Selezionare Lakebase Postgres come tipo di catalogo, scegliere Scalabilità automatica e selezionare lo stesso progetto e ramo dell'app. Per informazioni dettagliate, vedere Registrare il database in Unity Catalog .

Dopo la registrazione, ricorda che i nomi degli schemi in Unity Catalog mantengono i trattini dal nome dell'app. I nomi del catalogo e dello schema richiedono la delimitazione con backtick.

SELECT * FROM `your-catalog-name`.`lakebase-autoscaling-app_schema_aeb6ff9198ff4752af7dfc6d4cf570d`.todos;

Altre informazioni