wang-x-xia opened a new pull request #2807:
URL: https://github.com/apache/iceberg/pull/2807
I create a new module for Dell EMC ECS Catalog implementation.
The package "org.apache.iceberg.dell.emc.ecs" contains following things:
1. Abstacations of object storage:
| Class | Description |
| ---------------- | -------------------------------------- |
| ObjectBaseKey | the prefix of object key. |
| ObjectKey | the object key. |
| ObjectKeys | the object key operations. |
| ObjectHeadInfo | the basic information of an object. |
| EcsClient | the abstract client of object storage. |
| PropertiesSerDes | the properties de/serialization. |
2. ECS catalog implementations
| Impls | Interface |
| ------------------ | --------------------- |
| EcsCatalog | Catalog |
| EcsFile | InputFile, OutputFile |
| EcsFileIO | FileIO |
| EcsTableOperations | TableOperations |
Then, the package "org.apache.iceberg.dell.emc.ecs.impl" impls the EcsClient
and some related interfaces.
Because Dell EMC ECS extends standard Amazon S3 API, we use Amazon S3 SDK v1
(v2 SDK doesn't allow the custom behavior).
| Features | Method
| Doc
|
| ------------------------------ |
----------------------------------------------------- |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
| replace exist object with eTag | EcsClient#replace
| un-document
|
| create object if absent | EcsClient#writeIfAbsent,
EcsClient#copyObjectIfAbsent |
[If-None-Match](http://doc.isilon.com/ECS/3.6/API/S3ObjectOperations_createOrUpdateObject_7916bd6f789d0ae0ff39961c0e660d00_ba672412ac371bb6cf4e69291344510e_detail.html)
|
| append bytes | EcsClient#outputStream
|
[Range](http://doc.isilon.com/ECS/3.6/API/S3ObjectOperations_createOrUpdateObject_7916bd6f789d0ae0ff39961c0e660d00_ba672412ac371bb6cf4e69291344510e_detail.html)
|
For unit tests, I create an EcsClient impl named MemoryEcsClient. It
provides the same assumptions that EcsClient provided.
Original issue: https://github.com/apache/iceberg/issues/2806
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]