Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Bruk OneLake-tabelllese-API-et for å lese rader fra en Delta Lake- eller Apache Iceberg-tabell i OneLake.
For å lese tabelldata, send én forespørsel om å starte en lesesesjon. API-et returnerer én eller flere uavhengige resultatstrømmer basert på størrelsen på dataene som må returneres. Applikasjonen din kan laste ned disse strømmene parallelt, noe som hjelper den å lese store mengder tabelldata raskere. Etter nedlasting av strømmene, behandle deres Apache Arrow-postbatcher for å sette sammen det komplette resultatet.
API-et leser tabellen fra et konsistent tidspunkt, slik at hver resultatstrøm inneholder data fra samme øyeblikksbilde, selv om tabellen endres mens lesingen pågår. Den håndhever også OneLake-autorisasjon, rad-nivå sikkerhet (RLS) og kolonne-nivå sikkerhet (CLS) for den autentiserte innringeren. Dette betyr at applikasjonen din kun mottar radene og kolonnene som kalleren har tillatelse til å få tilgang til, uten å måtte gjenskape disse sikkerhetskontrollene i sin egen kode.
Important
OneLake-tabelllese-API-et er for øyeblikket i offentlig forhåndsvisning. Funksjoner og oppførsel kan endre seg før generell tilgjengelighet.
Forutsetninger
- Fullfør forhåndskravene og autentiseringstrinnene for delte tabeller.
- En HTTP-klient som kan behandle en Apache Arrow IPC-strøm uten å buffre hele svaret.
1. Send en forespørsel om tabellrader
Send en POST forespørsel til tabellens /read rute for å starte en leseøkt.
Bygg forespørsels-URL-en ved å erstatte plassholderne med identifikatorene for arbeidsområdet, elementet, skjemaet og tabellen du ønsker å lese.
POST <TableReadBaseUrl>/v1.0/workspaces/<WorkspaceID>/items/<ItemID>/schemas/<SchemaName>/tables/<TableName>/read Authorization: Bearer <BearerToken>Inkluder lesealternativene som søknaden din krever i forespørselen. Bruk
columnsvalget for å angi hvilke kolonner som skal returneres.Lagre alle ugjennomsiktige strømidentifikatorer fra det vellykkede svaret. Et stort resultat kan være delt over flere strømmer. Du må hente hver strøm for å motta alle radene.
Svaret starter en lesesesjon over et konsistent øyeblikksbilde av tabellversjonene som trengs for forespørselen din. Hver strøm fra dette svaret bruker det samme øyeblikksbildet.
2. Last ned alle resultatstrømmer
Bruk hver strømidentifikator fra responsen for å hente den tilsvarende delen av tabellen som leses.
En lesesesjon utløper etter 60 minutter. Hent hver strøm før økten utløper. Hvis du stopper etter å bare ha hentet noen strømmer, vil du ikke motta det komplette resultatet.
For hver strømidentifikator i tildelingssvaret, send en autentisert
GETforespørsel.GET <TableReadBaseUrl>/v1.0/workspaces/<WorkspaceID>/items/<ItemID>/schemas/<SchemaName>/tables/<TableName>/readStream/<StreamID> Authorization: Bearer <BearerToken>Åpne svardelen med en Apache Arrow IPC-strømleser.
Behandle postbatchene etter hvert som de ankommer. Strømming av batchene unngår å laste hele resultatet inn i minnet.
Gjenta forespørselen for hver strømidentifikator og kombiner resultatene i henhold til applikasjonens behandlingsmodell.
Hvert /readStream svar er en uavhengig Apache Arrow IPC-strøm. Bruk Apache Arrow-biblioteket som applikasjonsspråk for å lese postbatchene fra hvert svar. For mer informasjon om strømformatet, se Serialisering og interprosesskommunikasjon (IPC).
Responsdelen inneholder rå Apache Arrow IPC-strømdata, inkludert skjemainformasjonen som trengs for å tolke postbatchene. Ikke stol på rekkefølgen, eller anta at posisjonen til en strøm i responsen bestemmer dens posisjon i det komplette resultatet.
Forstå OneLake-sikkerheten for tabelllese-API
API-et håndhever OneLake-sikkerheten ved å bruke identiteten som bærertokenet ditt representerer:
- Hvis du ikke har tillatelse til å se tabellen, returnerer tjenesten et ikke-funnet-svar.
- Hvis rad-nivå sikkerhet (RLS) filtrerer ut alle rader du kan se, lykkes forespørselen, men returnerer et tomt Arrow-svar.
- Hvis du bruker en wildcard-kolonneprojeksjon, inkluderer responsen kun kolonner som kolonnenivå sikkerhet (CLS) lar deg se.
- Hvis du eksplisitt ber om en kolonne du ikke kan se, returnerer tjenesten et ikke-funnet svar.
Siden uautoriserte tabeller og kolonner returnerer ikke-funnet-svar, bør du ikke bruke et ikke-funnet svar for å avgjøre om en ressurs eksisterer.
Hensyn og begrensninger
- Tabelllese-API-et støtter ikke snarveier på tvers av regioner.
- Du blir fakturert for operasjonen
POST /read. Å hente data ved å bruke/readStreamutløser ikke en separat tabelllesefaktureringshendelse. For mer informasjon, se Table read API consumption.