We were discussing the suitability of Object Storage to various workloads and the programmability convenience that enables migration of old and new workloads. In particular, we discussed connectors for various data sources and their bidirectional data transfer. Duplicity is a command line tool that is an example of a connector tool but we were discussing availability of an SDK with the object storage. Writing the connectors for each data source is very much like an input-output model. The data is either from the external source to an object storage or from object storage to external source. In each of these directions a connector only changes for the type of external source. Otherwise the object storage facing part of the connector is already implemented in the form of S3 Apis for read and write. The APIs varies only for the data source as available from the data source. This makes it easy to write the connector as an amalgam of source facing API for bidirectional data transfer to Object-Storage facing S3 Apis. A read from the external data source is written to Object storage with s3 put api and a write to the external data destination has data coming from Object storage with a read using S3 get apis. Since each connector varies by the type of external data platform, they can be written one per data platform so that it is easier to use with that data platform. Also, SDKs facilitate development by providing language based convenience. Therefore, the same connector sdk may be offered in more than one language.
SDKs may be offered in any language for the convenience of writing data transfer in any environment. It just does not stop there. UI widens the audience for the same purposes and brings in administrators and systems engineering without the need for writing scripts or code. ETL for example is a very popular usage of designer tools with drag and drop logic facilitating wiring and transfer of data. SDK may power the UI as well and both can be adapted to the data source, environment and tasks.
#codingexercise
bool isDivisibleBy55(uint n)
{
return isDivisibleBy5(n) &&isDivisibleBy11(n);
}
bool isDivisibleBy77(uint n)
{
return isDivisibleBy7(n) &&isDivisibleBy11(n);
}
No comments:
Post a Comment