mirror of
https://github.com/datahub-project/datahub.git
synced 2025-11-03 12:16:10 +00:00
Modify frontend API get columns to fetch from metadata store first (#368)
Try metadata store schemaMetadata first, if no fields then query WhereHows DB for dataset columns.
This commit is contained in:
parent
488e7bb067
commit
f5a8b054b2
@ -148,31 +148,32 @@ public class Dataset extends Controller
|
||||
}
|
||||
|
||||
public static Result getDatasetColumnsByID(int id) {
|
||||
List<DatasetColumn> datasetColumnList = DatasetsDAO.getDatasetColumnsByID(id);
|
||||
|
||||
ObjectNode result = Json.newObject();
|
||||
if (datasetColumnList != null && datasetColumnList.size() > 0) {
|
||||
result.put("status", "ok");
|
||||
result.set("columns", Json.toJson(datasetColumnList));
|
||||
|
||||
String urn = DatasetsDAO.getDatasetUrnById(id);
|
||||
if (urn == null || urn.length() < 6) {
|
||||
Logger.debug("Dataset id " + id + " not found.");
|
||||
result.put("status", "error");
|
||||
result.put("message", "Dataset id not found");
|
||||
return ok(result);
|
||||
}
|
||||
|
||||
// try to access dataset fields from Metadata Store schemaMetadata first
|
||||
SchemaFieldArray datasetFields = null;
|
||||
if (datasetColumnList == null || datasetColumnList.size() == 0) {
|
||||
String urn = DatasetsDAO.getDatasetUrnById(id);
|
||||
if (urn != null && urn.length() > 6) {
|
||||
try {
|
||||
datasetFields = MetadataStoreDao.getLatestSchemaByWhUrn(urn).getFields();
|
||||
} catch (Exception e) {
|
||||
Logger.debug("Can't find schema for URN: " + urn + ", Exception: " + e.getMessage());
|
||||
}
|
||||
} else {
|
||||
Logger.debug("Dataset id " + id + " not found.");
|
||||
}
|
||||
try {
|
||||
datasetFields = MetadataStoreDao.getLatestSchemaByWhUrn(urn).getFields();
|
||||
} catch (Exception e) {
|
||||
Logger.debug("Can't find schema for URN: " + urn + ", Exception: " + e.getMessage());
|
||||
}
|
||||
|
||||
List<DatasetColumn> datasetColumnList;
|
||||
if (datasetFields != null && datasetFields.size() > 0) {
|
||||
datasetColumnList = MetadataStoreDao.datasetColumnsMapper(datasetFields);
|
||||
} else { // get fields from WH db if nothing in Metadata store
|
||||
datasetColumnList = DatasetsDAO.getDatasetColumnsByID(id);
|
||||
}
|
||||
|
||||
if (datasetColumnList != null && datasetColumnList.size() > 0) {
|
||||
result.put("status", "ok");
|
||||
result.set("columns", Json.toJson(datasetColumnList));
|
||||
} else {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user