Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: Databricks SQL
Databricks Runtime 11.3 LTS en hoger
Retourneert de status op bestandsniveau van een Auto Loader of read_files
stroom.
Syntaxis
cloud_files_state( { TABLE ( table_name ) | checkpoint } )
Argumenten
-
table_name: de identificatie van de streamingtabel waarnaar door
read_files
wordt geschreven. De naam mag geen tijdelijke specificatie bevatten. Beschikbaar in Databricks Runtime 13.3 LTS en hoger. -
checkpoint
: EenSTRING
letterlijke weergave. De controlepuntmap voor een stream met behulp van de Auto Loader-bron. Zie Wat is Auto Loader?
Retouren
Retourneert een tabel met het volgende schema:
path STRING NOT NULL PRIMARY KEY
Het pad van een bestand.
size BIGINT NOT NULL
De grootte van een bestand in bytes.
create_time TIMESTAMP NOT NULL
Het tijdstip waarop een bestand is gemaakt.
discovery_time TIMESTAMP NOT NULL
Van toepassing op:
Databricks SQL
Databricks Runtime 16.4 en hoger
Het tijdstip waarop een bestand is gedetecteerd.
processed_time TIMESTAMP NOT NULL
Van toepassing op:
Databricks SQL
Databricks Runtime 16.4 en hoger wanneer
cloudFiles.cleanSource
is ingeschakeld. Zie opties voor automatisch laden.Het tijdstip waarop een bestand is verwerkt. Als een batch een fout tegenkomt en opnieuw wordt geprobeerd, kan een bestand meerdere keren worden verwerkt. Wanneer er nieuwe pogingen worden uitgevoerd, bevat dit veld de meest recente verwerkingstijd.
commit_time TIMESTAMP
Van toepassing op:
Databricks SQL
Databricks Runtime 16.4 en hoger wanneer
cloudFiles.cleanSource
is ingeschakeld. Zie opties voor automatisch laden.Het tijdstip waarop een bestand is doorgevoerd naar het controlepunt na verwerking.
NULL
als het bestand nog niet is verwerkt. Er is geen gegarandeerde latentie voor het markeren van een bestand als gecommit; een bestand kan worden verwerkt, maar op een willekeurig later moment als gecommit worden gemarkeerd. Als u het bestand markeert zoals vastgelegd, betekent dit dat automatisch laden het bestand niet opnieuw nodig heeft voor verwerking.archive_time TIMESTAMP
Van toepassing op:
Databricks SQL
Databricks Runtime 16.4 en hoger wanneer
cloudFiles.cleanSource
is ingeschakeld. Zie opties voor automatisch laden.De tijd dat een bestand is gearchiveerd.
NULL
als het bestand niet is gearchiveerd.archive_mode STRING
Van toepassing op:
Databricks SQL
Databricks Runtime 16.4 en hoger wanneer
cloudFiles.cleanSource
is ingeschakeld. Zie opties voor automatisch laden.MOVE
wanneer het bestand is gearchiveerd, alscloudFiles.cleanSource
opMOVE
is ingesteld.DELETE
wanneer het bestand is gearchiveerd, alscloudFiles.cleanSource
opDELETE
is ingesteld.NULL
alscloudFiles.cleanSource
is ingesteld opOFF
(standaard).move_location STRING
Van toepassing op:
Databricks SQL
Databricks Runtime 16.4 en hoger wanneer
cloudFiles.cleanSource
is ingeschakeld. Zie opties voor automatisch laden.Het volledige pad waarnaar het bestand tijdens de archiveringsbewerking is verplaatst toen
cloudFiles.cleanSource
werd ingesteld opMOVE
.NULL
als het bestand niet is gearchiveerd ofcloudFiles.cleanSource
een vanDELETE
ofOFF
is.source_id STRING
De ID van de Auto Loader-bron in de streamingquery. Deze waarde is
'0'
bedoeld voor streams die worden opgenomen vanuit één locatie voor het cloudobjectarchief.flow_name STRING
Van toepassing op:
Databricks SQL
Databricks Runtime 13.3 en hoger
Vertegenwoordigt een specifieke streamingstroom in Lakeflow Declarative Pipelines die een of meer cloudbestandenbronnen bevat. NULL als er geen table_name is opgegeven.
ingestion_state STRING
Van toepassing op:
Databricks SQL
Databricks Runtime 16.4 en hoger wanneer
cloudFiles.cleanSource
is ingeschakeld. Zie opties voor automatisch laden.Of het bestand is opgenomen, aangegeven met een van de volgende statussen:
-
NULL
: Het bestand is nog niet verwerkt of de bestandsstatus kan niet worden bepaald door automatisch laden. -
PROCESSING
: het bestand wordt verwerkt. -
SKIPPED_CORRUPTED
: Het bestand is niet opgenomen omdat het beschadigd is. -
SKIPPED_MISSING
: Het bestand is niet opgenomen omdat het niet is gevonden tijdens de verwerking. -
INGESTED
: Het bestand is minstens één keer verwerkt door de ontvanger. Het kan opnieuw worden verwerkt door niet-idempotente sinks, zoalsforeachBatch
in geval van storingen in de stroom. Alleen bestanden die een niet-legecommit_time
-veld hebben en zich in deINGESTED
-status bevinden, zijn volledig verwerkt. -
NOT_RECOGNIZED_BY_DBR
: Gereserveerd voor versiecompatibiliteit. Deze status wordt weergegeven voor statussen die zijn geïntroduceerd in latere Databricks Runtime-versies die niet worden herkend door eerdere Databricks Runtime-versies.
-
Machtigingen
U moet het volgende hebben:
-
OWNER
bevoegdheden voor de streamingtabel als u een streamingtabel-id gebruikt. -
READ FILES
bevoegdheden voor de controlepuntlocatie als u een controlepunt opgeeft op een externe locatie.
Voorbeelden
-- Simple example from checkpoint
> SELECT path FROM CLOUD_FILES_STATE('/some/checkpoint');
/some/input/path
/other/input/path
-- Simple example from source subdir
> SELECT path FROM CLOUD_FILES_STATE('/some/checkpoint/sources/0');
/some/input/path
/other/input/path
-- Simple example from streaming table
> SELECT path FROM CLOUD_FILES_STATE(TABLE(my_streaming_table));
/some/input/path
/other/input/path
Beperkingen
- De tabelwaardefunctie kan niet worden gebruikt in een ETL-pijplijn om de status op bestandsniveau van een streamingtabel te lezen die door een andere pijplijn wordt geproduceerd.
- Een query kan niet verwijzen naar meer dan één
cloud_files_state
tabelwaardefunctie in verschillende streamingtabellen.
Als u de eerste beperking wilt omzeilen, kunt u een Databricks-taak maken en de tabelwaardefunctie in een notebooktaak gebruiken om de status op bestandsniveau van een streamingtabel te extraheren en te laden. Voorbeeld:
Klik in de zijbalk van de werkruimte op
taken & pijplijnen .Klik op een taak.
Maak een nieuwe pijplijntaak die een streamingtabel produceert. Voorbeeld:
CREATE OR REFRESH STREAMING LIVE TABLE <table-name> AS SELECT <select clause expressions> FROM STREAM read_files('/path/to/files', format => '<format>', ...)
Maak een nieuwe Notebook-taak die de status op bestandsniveau van de streamingtabel leest met behulp van de
cloud_files_state
functie met tabelwaarde en laad deze in een tabel. Voorbeeld:spark .sql("""SELECT * FROM cloud_files_state(TABLE(<table-name>)""") .write .saveAsTable('<table-file-state>')
Configureer het veld Afhankelijk van de notebook-taak en selecteer de pijplijntaak .