Important API and SDK changes for developers by version.
Table of Contents |
---|
7.0
Deprecated REST API calls
The following REST API calls have been deprecated as of Datameer 7.0 and are scheduled to be removed before Datameer 8.0.
- Read Workbook
- Replaced with with Read Workbook v2
- Create Workbook
- Replaced with with Create Workbook v2
- Update Workbook
- Replaced with with Update Workbook v2
New job execution events for the SDK
...
- A job started event is published on the event bus with a job execution id, data directory, and the job metadata when a job starts (the job status changes to RUNNING).
- The metadata of a job will be determined when the job switches from QUEUED to RUNNING; if a user would make changes during this time these changes will be taken when the job switches to RUNNING.
- The SDK type is called
JobExecutionStartedEvent
.
- A job canceled event is published on the event bus with a job execution id, data directory, and owner when a job gets canceled.
- The SDK type is called
JobExecutionCanceledEvent
.
- The SDK type is called
- A job completed event is published on the event bus with a job execution id, data directory, and owner when a job successfully (with data) completes.
- The SDK type is called
JobExecutionCompletedEvent
.
- The SDK type is called
- A job failed event is published on the event bus with a job execution id, data directory and owner when a job failed during execution.
- The SDK type is called
JobExecutionFailedEvent
.
- The SDK type is called
Details about the job execution status events
- The executing user of a job is the user that runs the job. This user is always the owner of the job.
- The triggering user of a job is the user who performed the job start action. This depends on:
- if the job is triggered manually, the logged in user is the triggering user.
- if the job is triggered by the scheduler, the job owner is also the triggering user.
- The JobExecutionStartedEvent published on the event bus consists of the fields:
dataDir
with an URI where the data resides in HDFS.executingAs
which contains information about the executing user (the running user).jobExecutionId
which is the ID of the job execution.jobMetaData
which contains the data about the job (e.g., the sheets and columns of a workbook)triggeredBy
which is either eitherUSER
,SCHEDULER
,RESTAPI
,IMPORTJOB
,EXPORTJOB
, or orWORKBOOK
.performedBy
which contains information about the triggering user.
- Depending on the cluster mode the executing user of a job is potentially used to authenticate against the cluster/HDFS
...
- An event is published on the event bus when a user is downloading data from a worksheet or a data source on the "Browse All Data" page.
- The SDK type is called
DownloadDataEvent
.
- The SDK type is called
- The event consist of:
- The file UUID from the workbook or data source.
- A list of sheet data which has one or multiple
SheetData
instances attached to it.- Many Many
SheetData
instances are available when the import job is in append mode or partitioned. - Many Many
SheetData
instances are when the file upload is partitioned. - Many Many
SheetData
instances are when the workbook sheet is partitioned. - Otherwise we have only one sheet data instance
- Many Many
- The user who is performing the download
...
For enhanced security performance, users are not able authenticate a REST API call using session cookies. Datameer recommends using basic authentication when using the REST API.
...
Panel |
---|
curl -u <username>:<password> |
7.4
Artifact identifier added to job-details REST call
The The REST API for job-details has been updated to to include the jobConfigurationID, file-id, and uuid. Both the file-id and uuid can be used as identifiers for all v2 REST API calls.
7.5
REST API For global variables
The REST API can be used to create, update, delete, and list global variables in Datameer.
SDK class changes
datameer.dap.sdk.datastore.v2.DataStoreTypeV2.java
Code Block language java title changed /** * Validates the connection set-up and returns an exception if the connection is not properly configured. This * should be overwritten by the implementation. * * @param config * @param connection * @return exception if the connection is not properly configured. */ public Optional<Exception> validateSetUp(Config config, Connection connection) { return validateSetUp(connection); } /** * Validates the connection set-up and returns an exception if the connection is not properly configured. * * @param connection * @return exception if the connection is not properly configured. * @deprecated please use {@link #validateSetUp(Config, Connection)} instead. */ @Deprecated @DeprecatedSince("7.6.0") public Optional<Exception> validateSetUp(Connection connection) { throw new RuntimeException("Please overwrite validateSetUp(Config config, Connection connection)"); }
datameer.dap.sdk.datawarehouse.DataWarehouseClient.java
Code Block language java title added public abstract Optional<Exception> testAccess();
datameer.dap.sdk.entity.v2.SheetData.java
Code Block language java title changed public static ImmutableMap<Path, RecordSchema> toMap(Iterable<SheetData> sheetDatas, SheetArtifactType sheetArtifactType) too public static SheetPreviewDataMetadata toMap(Iterable<SheetData> sheetDatas, SheetArtifactType sheetArtifactType) {
datameer.dap.sdk.entity.v2.variable.Variable.java
Code Block language java title added public abstract Long id(); public abstract DateTime createdAt(); public abstract DateTime modifiedAt(); public Variable withValue(String newValue)
datameer.dap.sdk.entity.v2.workbook.ColumnBasedSheetFilterArgument.java
Code Block language java title added LIST_EQUALS, LIST_NOT_EQUALS,
datameer.dap.sdk.importjob.ImportFormat.java
Code Block language java title changed void registerFilterExpression(DasJobEnvironment environment, String filterExpression, String sourceSheetName); too default void registerFilterExpression(DasJobEnvironment environment, String filterExpression, String sourceSheetName, Iterable<Variable> variables)
datameer.dap.sdk.importjob.AbstractImportFormat.java
Code Block language java title removed @Override public void registerFilterExpression(DasJobEnvironment environment, String filterExpression, String sourceSheetName) { // DO NOTHING }
datameer.dap.sdk.importjob.DelegateImportFormat.java
Code Block language java title changed public void registerFilterExpression(DasJobEnvironment environment, String filterExpression, String sheetName) { too public void registerFilterExpression(DasJobEnvironment environment, String filterExpression, String sheetName, Iterable<Variable> variables) {
datameer.dap.sdk.importjob.Splitter.SplitHint
Code Block language java title removed public static final String MAPRED_MAP_SLOT_COUNT = "mapred.map.slot-count"; public static final String MAPRED_REDUCE_SLOT_COUNT = "mapred.reduce.slot-count"; public SplitHint(Configuration conf) { public SplitHint(Configuration conf, int desiredSplitCount) { public int getMapSlotCount() { public int getReduceSlotCount() { public boolean shouldIgnoreReplicationFactor() {
datameer.dap.sdk.usermanagement.Capability.java
Code Block language java title removed VARIABLES_READ(ADMINISTRATION_ACCESS),
datameer.dap.sdk.usermanagement.CapabilityEvaluation.java
Code Block language java title removed public boolean canReadVariables() {
datameer.dap.sdk.util.ValueValidator.java
Code Block language java title changed ValidationResult validate(Object value); too ValidationResult validate(Object value, ValueType valueType);