Megosztás a következőn keresztül:


táblahivatkozás

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

A táblahivatkozások köztes eredménytáblák az SQL-ben. Ez más operátorokból, például függvényekből, illesztésekből vagy allekérdezésekből származó származtatható, közvetlenül hivatkozhat egy alaptáblára, vagy beágyazott táblaként hozható létre.

Szemantika

table_reference
  { table_name [ TABLESAMPLE clause ] [ table_alias ] |
    { STREAM table_name [ table_alias ] | STREAM ( table_name ) [ table_alias ] } |
    view_name [ table_alias ] |
    table_reference JOIN clause |
    table_reference PIVOT clause |
    table_reference UNPIVOT clause |
    [ STREAM ] table_valued_function [ table_alias ] |
    [ LATERAL ] table_valued_function [ table_alias ] |
    VALUES clause |
    [ LATERAL ] ( query ) [ TABLESAMPLE clause ] [ table_alias ] }

Paraméterek

  • table_name

    Olyan táblát azonosít, amely időbeli specifikációttartalmazhat. További információt A Delta Lake-táblaelőzmények című témakörben talál.

    Ha a tábla nem található, az Azure Databricks TABLE_OR_VIEW_NOT_FOUND hibát jelez.

    A névfeloldásról további információ az Oszlop, mező, paraméter és változó feloldására vonatkozó hivatkozásnál található.

    A következőkre vonatkozik: ** jelölje be az igen jelölést Databricks Runtime 16.0-s és újabb verziók

    table_namebeállítási specifikációt is tartalmazhat.

  • view_name

    Egy nézetet vagy egy közös táblakifejezést (CTE) azonosít. Ha a nézet nem található, az Azure Databricks TABLE_OR_VIEW_NOT_FOUND hibát okoz.

    A névfeloldásról további információ az Oszlop, mező, paraméter és változó feloldására vonatkozó hivatkozásnál található.

  • PATAK

    Streamforrásként visszaad egy táblát vagy egy táblaértékelő függvényt. A táblák nem adhatók meg időbeli specifikációval, ha a STREAM kulcsszóval használják. A streamelési forrásokat leggyakrabban streamelési táblákdefinícióiban használják.

  • JOIN

    Két vagy több kapcsolatot egyesít egy illesztés használatával.

  • PIVOT

    A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 12.2 LTS és újabb.

    Adatperspektíva; az összesített értékeket adott oszlopérték alapján is lekérheti.

    A Databricks Runtime 12.0 előtt a PIVOT a SELECT záradékot követően a FROM-re korlátozódik.

  • UNPIVOT

    A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 12.2 LTS és újabb.

    Adatperspektíva; több oszlopcsoportot is feloszthat sorokra.

  • [OLDALIRÁNYÚ]table_valued_function_invocation

    Meghív egy táblaértékű függvényt. Ha az előző table_reference által feltüntetett oszlopokra szeretne hivatkozni ugyanabban a FROM záradékban, meg kell adnia LATERAL.

  • VALUES

    Beágyazott táblát definiál.

  • [OLDALIRÁNYÚ] ( lekérdezés )

    Táblahivatkozás kiszámítása lekérdezéssel. Az LATERAL által előtagolt lekérdezés hivatkozhat az előző table_reference által közzétett oszlopokra ugyanabban a FROM záradékban. Az ilyen szerkezetet korrelált vagy függő lekérdezésnek nevezzük.

  • TABLESAMPLE

    Igény szerint csökkentheti az eredményhalmaz méretét úgy, hogy csak a sorok töredékét mintavételozza.

  • table_alias

    Opcionálisan megadja a címkét a table_reference. Ha a table_aliascolumn_identifiertartalmazza, a számnak meg kell egyeznie a table_referenceoszlopainak számával.

Kijelölés a Delta táblában

A standard SELECT lehetőségek mellett a Delta-táblák támogatják az ebben a szakaszban ismertetett időutazási lehetőségeket. További információkért lásd: a Delta Lake-táblaelőzményekkel való munkavégzést.

AS OF szintaxis

table_identifier TIMESTAMP AS OF timestamp_expression

table_identifier VERSION AS OF version
  • timestamp_expression az alábbiak bármelyike lehet:
    • '2018-10-18T22:15:12.013Z', azaz olyan sztring, amely időbélyegre vethető
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18', azaz dátumsztring
    • current_timestamp() - interval 12 hours
    • date_sub(current_date(), 1)
    • Bármely más kifejezés, amely időbélyegbe van öntött vagy adható
  • version egy hosszú érték, amely a következő kimenetből DESCRIBE HISTORY table_speckérhető le: .

Sem nem timestamp_expressionversion lehet alqueries.

Példa

> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'

> SELECT * FROM events VERSION AS OF 123

@ szintaxis

A szintaxis használatával @ adja meg az időbélyeget vagy a verziót. Az időbélyegnek formátumban yyyyMMddHHmmssSSS kell lennie. A verziót a @ verzióra való előerősítéssel v adhatja meg. A 123tábla events verziójának lekérdezéséhez például adja meg a events@v123.

Példa

> SELECT * FROM events@20190101000000000

> SELECT * FROM events@v123

Példák


-- Return a data set from a storage location using a credential.
> SELECT * FROM `csv`.`spreadsheets/data.csv` WITH(CREDENTIAL some_credential);

-- Select from a jdbc data source while controlling the fetch size.
> SELECT * FROM jdbcTable WITH(fetchSize = 0);

-- select all referencable columns from all tables
> SELECT * FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
  1   2   3   4

-- select all referencable columns from one table
> SELECT t2.* FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
  3   4

-- select all referencable columns from all tables except t2.c4
> SELECT * EXCEPT(c4) FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
  1   2   3

-- select all referencable columns from a table, except a nested field.
> SELECT * EXCEPT(c2.b) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
  1  { "a" : 2 }

-- Removing all fields results in an empty struct
> SELECT * EXCEPT(c2.b, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
  1  { }

-- Overlapping names result in an error
> SELECT * EXCEPT(c2, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
  Error: EXCEPT_OVERLAPPING_COLUMNS