feat: Re-introduce Streaming Load API #17921
Merged
Add this suggestion to a batch that can be applied as a single commit. This suggestion is invalid because no changes were made to the code. Suggestions cannot be applied while the pull request is closed. Suggestions cannot be applied while viewing a subset of changes. Only one suggestion per line can be applied in a batch. Add this suggestion to a batch that can be applied as a single commit. Applying suggestions on deleted lines is not supported. You must change the existing code in this line in order to create a valid suggestion. Outdated suggestions cannot be applied. This suggestion has been applied or marked resolved. Suggestions cannot be applied from pending reviews. Suggestions cannot be applied on multi-line comments. Suggestions cannot be applied while the pull request is queued to merge. Suggestion cannot be applied right now. Please check back later.
I hereby agree to the terms of the CLA available at: https://docs.databend.com/dev/policies/cla/
Summary
This PR re-introduces the streaming load API
Usage
Minimal Example
Notes:
-u username:password)Authorizationheadersqlheader is required and currently only supports:COPY INTOsyntax)uploadResponse Format
On Success:
{ "id": "27262da8-f667-4502-9420-2dead99b8723", "stats": { "rows": 10, "bytes": 1000 } }id: Query ID (same as/v1/queryAPI), auto-generated if not specifiedstats: Number of rows and bytes writtenOn Failure:
{ "error": { "code": 1001, "message": "some error message" } }Advanced Example
Response:
{ "id": "some-uuid", "state": "SUCCESS", "stats": { "rows": 0, "bytes": 0 }, "error": null, "files": ["ii_100.csv"] }Advanced Features:
x-databend-query-idheaderdeduplicate_labelis set, duplicate operations will succeed but report 0 rows/bytesChanges from Original Implementation
Simplified Response:
filesandstatefieldsstatsnow showswrite_progressinstead ofscan_progressImproved Design:
sqlheader instead ofinsert_sqlfor future DML compatibilitySettings Management:
Tests
Type of change
This change is