Frågeparametrar

Med en frågeparameter kan du ersätta värden i en fråga vid körning. Alla strängar mellan dubbla klammerparenteser {{ }} behandlas som en frågeparameter. En widget visas ovanför resultatfönstret där du anger parametervärdet. Frågeparametrar är mer flexibla än frågefilter och bör endast användas i fall där frågefilter inte räcker till.

Lägga till en frågeparameter

  1. Skriv Cmd + I. Parametern infogas i textomsorgen och dialogrutan Lägg till parameter visas.
    • Nyckelord: Nyckelordet som representerar parametern i frågan.
    • Rubrik: Rubriken som visas över widgeten. Som standard är rubriken samma som nyckelordet.
    • Typ: Typer som stöds är Text, Tal, Datum, Datum och tid, Datum och tid (med sekunder), listruta och frågebaserad listruta. Standardvärdet är Text.
  2. Ange nyckelordet, om du vill åsidosätta rubriken och välj parametertypen.
  3. Klicka på Lägg till parameter.
  4. I parameterwidgeten anger du parametervärdet.
  5. Klicka på Tillämpa ändringar.
  6. Klicka på Spara.

Du kan också skriva dubbla klammerparenteser och klicka på kugghjulsikonen {{ }} nära parameterwidgeten för att redigera inställningarna.

Om du vill köra frågan igen med ett annat parametervärde anger du värdet i widgeten och klickar på Tillämpa ändringar.

Redigera en frågeparameter

Om du vill redigera en parameter klickar du på kugghjulsikonen bredvid parameterwidgeten. Om du vill förhindra att användare som inte äger frågan ändrar parametern klickar du på Visa endast resultat. Parameterdialogrutan <Keyword> visas.

Ta bort en frågeparameter

Ta bort en frågeparameter genom att ta bort parametern från din fråga. Parameterwidgeten försvinner och du kan skriva om frågan med hjälp av statiska värden.

Ändra ordningen på parametrar

Om du vill ändra i vilken ordning parametrarna visas kan du klicka och dra varje parameter till önskad position.

Frågeparametertyper

Text

Tar en sträng som indata. Omvänt snedstreck, enkla och dubbla citattecken är undantagna och Azure Databricks lägger till citattecken i den här parametern. Till exempel omvandlas en sträng som mr's Li"s omvandlas till 'mr\'s Li\"s' Ett exempel på hur du använder detta kan vara

SELECT * FROM users WHERE name={{ text_param }}

Antal

Tar ett tal som indata. Ett exempel på hur du använder detta kan vara

SELECT * FROM users WHERE age={{ number_param }}

Om du vill begränsa omfånget för möjliga parametervärden när du kör en fråga använder du parametertypen Listruta . Ett exempel skulle vara SELECT * FROM users WHERE name='{{ dropdown_param }}'. När du väljer från panelen för parameterinställningar visas en textruta där du anger dina tillåtna värden, varje värde avgränsat med en ny rad. Listrutor är textparametrar. Om du vill använda datum eller datum och tider i listrutan anger du dem i det format som datakällan kräver. Strängarna är inte undantagna. Du kan välja mellan en listruta med ett värde eller flera värden.

  • Enskilt värde: Enkla citattecken runt parametern krävs.
  • Flervärde: Växla alternativet Tillåt flera värden . I listrutan Citat väljer du om du vill lämna parametrarna som angivna (inga citattecken) eller omsluta parametrarna med enkla eller dubbla citattecken. Du behöver inte lägga till citattecken runt parametern om du väljer citattecken.

WHERE Ändra satsen så att nyckelordet IN används i frågan.

SELECT ...
FROM   ...
WHERE field IN ( {{ Multi Select Parameter }} )

Med parameterwidgeten för flera val kan du skicka flera värden till databasen. Om du väljer alternativet Dubbel citattecken för parametern Quotation visar frågan följande format: WHERE IN ("value1", "value2", "value3")

Frågebaserad listruta

Tar resultatet av en fråga som indata. Den har samma beteende som parametern Listruta . Du måste spara listrutan Databricks SQL för att kunna använda den som indata i en annan fråga.

  1. Klicka på Listrutan Frågebaserad under Typ i inställningspanelen.
  2. Klicka på fältet Fråga och välj en fråga. Om målfrågan returnerar ett stort antal poster försämras prestandan.

Om målfrågan returnerar mer än en kolumn använder Databricks SQL den första . Om målfrågan returnerar name och value kolumner fyller Databricks SQL i parametervalswidgeten name med kolumnen men kör frågan med tillhörande value.

Anta till exempel att följande fråga returnerar data i tabellen.

SELECT user_uuid AS 'value', username AS 'name'
FROM users
värde name
1001 John Svensson
1002 Jane Doe
1003 Bobby-tabeller

När Azure Databricks kör frågan blir värdet som skickas till databasen 1001, 1002 eller 1003.

Datum och tid

Azure Databricks har flera alternativ för att parametrisera datum- och tidsstämpelvärden, inklusive alternativ för att förenkla parameteriseringen av tidsintervall. Välj bland tre alternativ med varierande precision:

Alternativ Precision Typ
Datum dag DATE
Datum och tid minut TIMESTAMP
Datum och tid (med sekunder) Andra TIMESTAMP

När du väljer alternativet Intervallparameter skapar du två parametrar som anges av .start och .end suffix. Alla alternativ skickar parametrar till din fråga som strängliteraler. Azure Databricks kräver att du omsluter datum- och tidsvärden inom enkla citattecken ('). Till exempel:

-- Date parameter
SELECT *
FROM usage_logs
WHERE date = '{{ date_param }}'

-- Date and Time Range parameter
SELECT *
FROM usage_logs
WHERE modified_time > '{{ date_range.start }}' and modified_time < '{{ date_range.end }}'

Datumparametrar använder ett kalenderplockningsgränssnitt och standardvärdet för aktuellt datum och tid.

Kommentar

Parametern Datumintervall returnerar endast rätt resultat för kolumner av DATE typen. För TIMESTAMP kolumner använder du något av alternativen Datum och Tidsintervall.

Värden för dynamiskt datum och datumintervall

När du lägger till en datum- eller datumintervallparameter i din fråga visar markeringswidgeten en blå blixtikon. Klicka på den för att visa dynamiska värden som today, yesterday, this week, last week, last montheller last year. Dessa värden uppdateras dynamiskt.

Viktigt!

Dynamiska datum och datumintervall är inte kompatibla med schemalagda frågor.

Använda frågeparametrar i instrumentpaneler

Du kan också använda parametrar eller statiska värden för frågor. När en visualisering baserad på en parametriserad fråga läggs till på en instrumentpanel kan visualiseringen konfigureras att använda antingen en:

  • Widgetparameter

    Widgetparametrar är specifika för en enda visualisering på en instrumentpanel, visas i visualiseringspanelen och de angivna parametervärdena gäller endast för frågan som ligger till grund för visualiseringen.

  • Instrumentpanelsparameter

    Instrumentpanelsparametrar kan tillämpas på flera visualiseringar. När du lägger till en visualisering baserat på en parametriserad fråga på en instrumentpanel läggs parametern som standard till som en instrumentpanelsparameter. Instrumentpanelsparametrar konfigureras för en eller flera visualiseringar på en instrumentpanel och visas överst på instrumentpanelen. Parametervärdena som anges för en instrumentpanelsparameter gäller för visualiseringar som återanvänder den specifika instrumentpanelsparametern. En instrumentpanel kan ha flera parametrar som var och en kan gälla för vissa visualiseringar och inte andra.

  • Statiskt värde

    Statiska värden används i stället för en parameter som svarar på ändringar. Med statiska värden kan du hårdkoda ett värde i stället för en parameter och får parametern att "försvinna" från instrumentpanelen eller widgeten där den visades tidigare.

När du lägger till en visualisering som innehåller en parametriserad fråga kan du välja rubriken och källan för parametern i visualiseringsfrågan genom att klicka på lämplig pennikon. Du kan också välja nyckelordet och ett standardvärde. Se Parameteregenskaper.

När du har lagt till en visualisering på en instrumentpanel får du åtkomst till parametermappningsgränssnittet genom att klicka på den lodräta ellipsen längst upp till höger i en instrumentpanelswidget och sedan klicka på Ändra widgetinställningar.

Parameteregenskaper

  • Rubrik: Visningsnamnet som visas bredvid värdeväljaren på instrumentpanelen. Den är som standard parametern Nyckelord. Om du vill redigera den klickar du på pennikonen Pencil Icon. Rubriker visas inte för statiska instrumentpanelsparametrar eftersom värdeväljaren är dold. Om du väljer Statiskt värde som värdekälla är fältet Rubrik nedtonat.

  • Nyckelord: Strängliteralen för den här parametern i den underliggande frågan. Detta är användbart för felsökning om instrumentpanelen inte returnerar det förväntade resultatet.

  • Standardvärde: Det värde som används om inget annat värde har angetts. Om du vill ändra detta från frågeskärmen kör du frågan med önskat parametervärde och klickar på knappen Spara .

  • Värdekälla: Källan till parametervärdet. Klicka på pennikonen Pencil Icon för att välja en källa.

    • Ny instrumentpanelsparameter: Skapa en ny parameter på instrumentpanelsnivå. På så sätt kan du ange ett parametervärde på en plats på instrumentpanelen och mappa det till flera visualiseringar.
    • Befintlig instrumentpanelsparameter: Mappa parametern till en befintlig instrumentpanelsparameter. Du måste ange vilken befintlig instrumentpanelsparameter.
    • Widgetparameter: Visar en värdeväljare i instrumentpanelswidgeten. Detta är användbart för engångsparametrar som inte delas mellan widgetar.
    • Statiskt värde: Välj ett statiskt värde för widgeten, oavsett vilka värden som används på andra widgetar. Statiskt mappade parametervärden visar inte någon värdeväljare någonstans på instrumentpanelen, vilket är mer kompakt. På så sätt kan du dra nytta av flexibiliteten hos frågeparametrar utan att röra användargränssnittet på en instrumentpanel när vissa parametrar inte förväntas ändras ofta.

    Change parameter mapping

Vanliga frågor och svar (FAQ)

Kan jag återanvända samma parameter flera gånger i en enda fråga?

Ja. Använd samma identifierare inom klammerparenteserna. I det här exemplet används parametern {{org_id}} två gånger.

SELECT {{org_id}}, count(0)
FROM queries
WHERE org_id = {{org_id}}

Kan jag använda flera parametrar i en enda fråga?

Ja. Använd ett unikt namn för varje parameter. I det här exemplet används två parametrar: {{org_id}} och {{start_date}}.

SELECT count(0)
FROM queries
WHERE org_id = {{org_id}} AND created_at > '{{start_date}}'