mirror of https://github.com/apache/superset.git
Clean up the druid sync api. (#1101)
This commit is contained in:
parent
2e6b4b121f
commit
a871ee7858
|
@ -1388,9 +1388,10 @@ class Caravel(BaseCaravelView):
|
|||
"dimensions": ["affiliate_id", "campaign", "first_seen"]
|
||||
}
|
||||
"""
|
||||
druid_config = json.loads(request.form.get('config'))
|
||||
user_name = request.form.get('user')
|
||||
cluster_name = request.form.get('cluster')
|
||||
payload = request.get_json(force=True)
|
||||
druid_config = payload['config']
|
||||
user_name = payload['user']
|
||||
cluster_name = payload['cluster']
|
||||
|
||||
user = sm.find_user(username=user_name)
|
||||
if not user:
|
||||
|
|
|
@ -218,22 +218,24 @@ class CoreTests(CaravelTestCase):
|
|||
db.session.commit()
|
||||
|
||||
cfg = {
|
||||
"name": "test_click",
|
||||
"dimensions": ["affiliate_id", "campaign", "first_seen"],
|
||||
"metrics_spec": [{"type": "count", "name": "count"},
|
||||
{"type": "sum", "name": "sum"}],
|
||||
"batch_ingestion": {
|
||||
"sql": "SELECT * FROM clicks WHERE d='{{ ds }}'",
|
||||
"ts_column": "d",
|
||||
"sources": [{
|
||||
"table": "clicks",
|
||||
"partition": "d='{{ ds }}'"
|
||||
}]
|
||||
"user": "admin",
|
||||
"cluster": "new_druid",
|
||||
"config": {
|
||||
"name": "test_click",
|
||||
"dimensions": ["affiliate_id", "campaign", "first_seen"],
|
||||
"metrics_spec": [{"type": "count", "name": "count"},
|
||||
{"type": "sum", "name": "sum"}],
|
||||
"batch_ingestion": {
|
||||
"sql": "SELECT * FROM clicks WHERE d='{{ ds }}'",
|
||||
"ts_column": "d",
|
||||
"sources": [{
|
||||
"table": "clicks",
|
||||
"partition": "d='{{ ds }}'"
|
||||
}]
|
||||
}
|
||||
}
|
||||
}
|
||||
resp = self.client.post(
|
||||
'/caravel/sync_druid/', data=dict(
|
||||
config=json.dumps(cfg), user="admin", cluster="new_druid"))
|
||||
resp = self.client.post('/caravel/sync_druid/', data=json.dumps(cfg))
|
||||
|
||||
druid_ds = db.session.query(DruidDatasource).filter_by(
|
||||
datasource_name="test_click").first()
|
||||
|
@ -243,30 +245,30 @@ class CoreTests(CaravelTestCase):
|
|||
["count", "sum"])
|
||||
assert resp.status_code == 201
|
||||
|
||||
# Datasource exists, not changes required
|
||||
resp = self.client.post(
|
||||
'/caravel/sync_druid/', data=dict(
|
||||
config=json.dumps(cfg), user="admin", cluster="new_druid"))
|
||||
druid_ds = db.session.query(DruidDatasource).filter_by(
|
||||
datasource_name="test_click").first()
|
||||
assert set([c.column_name for c in druid_ds.columns]) == set(
|
||||
["affiliate_id", "campaign", "first_seen"])
|
||||
assert set([m.metric_name for m in druid_ds.metrics]) == set(
|
||||
["count", "sum"])
|
||||
assert resp.status_code == 201
|
||||
|
||||
# datasource exists, not changes required
|
||||
resp = self.client.post('/caravel/sync_druid/', data=json.dumps(cfg))
|
||||
druid_ds = db.session.query(DruidDatasource).filter_by(
|
||||
datasource_name="test_click").first()
|
||||
assert set([c.column_name for c in druid_ds.columns]) == set(
|
||||
["affiliate_id", "campaign", "first_seen"])
|
||||
assert set([m.metric_name for m in druid_ds.metrics]) == set(
|
||||
["count", "sum"])
|
||||
assert resp.status_code == 201
|
||||
|
||||
# datasource exists, add new metrics and dimentions
|
||||
cfg = {
|
||||
"name": "test_click",
|
||||
"dimensions": ["affiliate_id", "second_seen"],
|
||||
"metrics_spec": [
|
||||
{"type": "bla", "name": "sum"},
|
||||
{"type": "unique", "name": "unique"}
|
||||
],
|
||||
"user": "admin",
|
||||
"cluster": "new_druid",
|
||||
"config": {
|
||||
"name": "test_click",
|
||||
"dimensions": ["affiliate_id", "second_seen"],
|
||||
"metrics_spec": [
|
||||
{"type": "bla", "name": "sum"},
|
||||
{"type": "unique", "name": "unique"}
|
||||
],
|
||||
}
|
||||
}
|
||||
resp = self.client.post(
|
||||
'/caravel/sync_druid/', data=dict(
|
||||
config=json.dumps(cfg), user="admin", cluster="new_druid"))
|
||||
resp = self.client.post('/caravel/sync_druid/', data=json.dumps(cfg))
|
||||
druid_ds = db.session.query(DruidDatasource).filter_by(
|
||||
datasource_name="test_click").first()
|
||||
# columns and metrics are not deleted if config is changed as
|
||||
|
|
Loading…
Reference in New Issue