Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st.
We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here.
Need help or have questions? Drop us a line at [email protected]
Created on 12-13-2017 04:29 PM - edited 08-17-2019 06:13 PM
I want to allow users that store data on our HDP 2.6.3 cluster, to tag to their data in Atlas with the push a button. So I'm preparing the REST API commands for that. And because Atlas is not implemented here, I'm trying this on a HDP 2.6.3 Sandbox on a VirtualBox.
Atlas is running and the REST API works. For example, I can run this:
curl -iv -X GET http://sandbox.hortonworks.com:21000/api/atlas/entities?type=hive_table
And this results in:
{
"requestId": "pool-2-thread-4 - d7ab6dc3-2464-482d-b78b-24f5e14bfd49",
"typeName": "hive_table",
"results": [
"faedff26-819c-47ee-9cdf-77b4ba8bc547",
"dfbe373d-b672-418e-8f45-5e285b64dd7d",
"f8861c18-6ba2-455d-9024-96abf01387f1",
"9503d0e1-37d7-4456-8b79-30dda3199f67",
"c6fc7997-648a-4154-9bca-b265f4882ae5",
"155265ec-dbfe-4951-b051-2b09c47a6c7f",
"908cba22-cfa3-429e-a116-51dcdcbfb003",
"8de87c74-3c5d-4b5c-8218-316f2b785f5d",
"c87f4c84-54e7-4c07-ac77-f32811b40fa5",
"aaabeeb3-7528-4f76-8f65-443d26bb266e",
"59234a6b-7d3f-415f-b430-aae2074a0bb0",
"83cd29e8-cca9-4595-9d3b-8479cd2fc3ee",
"70f945be-7c3a-4580-86ac-695b345d0d7f"
],
"count": 13
}
Now I want to search for a Hive table and I just can't seem to get that working. Just to prove the table is there, here is a screenshot from the Atlas GUI:
atlas-search-advanced-hive-table.png(30.6 kB)
I've tried many variations of the DSL search. None of them work. These are just a couple of the many variations that I've tried:
curl -iv -u holger_gov:holger_gov -X GET http://sandbox.hortonworks.com:21000/api/atlas/discovery/search/dsl?query=hive_table+where+name='asteroids'
Message: {"error":"Invalid expression : hive_table where name=asteroids"}
curl -iv -u holger_gov:holger_gov -X GET http://sandbox.hortonworks.com:21000/api/atlas/v2/search/dsl?query=hive_table+where+name='asteroids'
Message: There was an error processing your request. It has been logged (ID 7da439947f22992b).
curl -iv -u holger_gov:holger_gov -X GET --header 'Accept: text/html' 'http://sandbox.hortonworks.com:21000/v2/search/dsl?query=name%3D'asteroids''
Message:
<body><h2>HTTP ERROR 404</h2><p>Problem accessing /v2/search/dsl. Reason:<pre> Not Found</pre></p><hr><i><small>Powered by Jetty://</small></i><hr/></body>
curl -iv -u holger_gov:holger_gov -X GET http://sandbox.hortonworks.com:21000/api/atlas/discovery/search/dsl?query=hive_table+where+name='asteroids'
Message: {"error":"Invalid expression : hive_table where name=asteroids"}
curl -iv -u holger_gov:holger_gov -X GET http://sandbox.hortonworks.com:21000/api/atlas/discovery/search/dsl?query=hive_table+where%20name%3D'asteroids'
Result: {"error":"Invalid expression : hive_table where name=asteroids"}
What am I missing here?
Created 12-14-2017 12:36 PM
I tried this and it returns only the queried table
curl -X GET \ 'http://sandbox.hortonworks.com:21000/api/atlas/v2/search/dsl?typeName=hive_table&query=where%20name%3D%22asteroids%22' \ -H 'authorization: Basic YWRtaW46YWRtaW4='
Since the thread was long. I put the correct answer separately. You will find an "Accept" button beside this answer. Please click on it to accept it to make it as Best answer.
Thanks a lot.
Created 12-13-2017 04:42 PM
Can you please try this once
curl -iv -u holger_gov:holger_gov -X GET http://sandbox.hortonworks.com:21000/api/atlas/v2/search/dsl?query=where%20name%3D%asteroids%27&type...
Thanks,
Aditya
Created 12-14-2017 09:24 AM
The message I get is:
{"errorCode":"ATLAS-500-00-004","errorMessage":"Discovery query failed where name=%asteroids'"}
Created 12-14-2017 09:40 AM
This should work
curl -iv -u holger_gov:holger_gov -X GET http://sandbox.hortonworks.com:21000/api/atlas/v2/search/dsl?typeName=hive_table&query=where+name%3D...
Thanks,
Aditya
Created 12-14-2017 10:02 AM
Hey yes! That already looks a lot more like a query response. It's not just the asteroids hive_table though, but it's getting somewhere.
{
"queryType": "DSL",
"queryText": "`hive_table` ",
"entities": [
{
"typeName": "hive_table",
"attributes": {
"owner": "spark",
"qualifiedName": "asteroids.asteroids_raw@Sandbox",
"name": "asteroids_raw",
"description": null
},
"guid": "faedff26-819c-47ee-9cdf-77b4ba8bc547",
"status": "ACTIVE",
"displayText": "asteroids_raw",
"classificationNames": [
"Applicatie_X"
]
},
{
"typeName": "hive_table",
"attributes": {
"owner": "spark",
"qualifiedName": "asteroids.asteroids@Sandbox",
"name": "asteroids",
"description": null
},
"guid": "dfbe373d-b672-418e-8f45-5e285b64dd7d",
"status": "ACTIVE",
"displayText": "asteroids",
"classificationNames": []
},
{
"typeName": "hive_table",
"attributes": {
"owner": "hive",
"qualifiedName": "xademo.call_detail_records@Sandbox",
"name": "call_detail_records",
"description": null
},
"guid": "70f945be-7c3a-4580-86ac-695b345d0d7f",
"status": "ACTIVE",
"displayText": "call_detail_records",
"classificationNames": []
},
{
"typeName": "hive_table",
"attributes": {
"owner": "hive",
"qualifiedName": "xademo.recharge_details@Sandbox",
"name": "recharge_details",
"description": null
},
"guid": "f8861c18-6ba2-455d-9024-96abf01387f1",
"status": "ACTIVE",
"displayText": "recharge_details",
"classificationNames": []
},
{
"typeName": "hive_table",
"attributes": {
"owner": "hive",
"qualifiedName": "xademo.customer_details@Sandbox",
"name": "customer_details",
"description": null
},
"guid": "155265ec-dbfe-4951-b051-2b09c47a6c7f",
"status": "ACTIVE",
"displayText": "customer_details",
"classificationNames": []
},
{
"typeName": "hive_table",
"attributes": {
"owner": "hive",
"qualifiedName": "foodmart.inventory_fact_1998@Sandbox",
"name": "inventory_fact_1998",
"description": null
},
"guid": "aaabeeb3-7528-4f76-8f65-443d26bb266e",
"status": "ACTIVE",
"displayText": "inventory_fact_1998",
"classificationNames": []
},
{
"typeName": "hive_table",
"attributes": {
"owner": "hive",
"qualifiedName": "foodmart.sales_fact_dec_1998@Sandbox",
"name": "sales_fact_dec_1998",
"description": null
},
"guid": "59234a6b-7d3f-415f-b430-aae2074a0bb0",
"status": "ACTIVE",
"displayText": "sales_fact_dec_1998",
"classificationNames": []
},
{
"typeName": "hive_table",
"attributes": {
"owner": "hive",
"qualifiedName": "foodmart.product@Sandbox",
"name": "product",
"description": null
},
"guid": "c6fc7997-648a-4154-9bca-b265f4882ae5",
"status": "ACTIVE",
"displayText": "product",
"classificationNames": []
},
{
"typeName": "hive_table",
"attributes": {
"owner": "hive",
"qualifiedName": "foodmart.customer@Sandbox",
"name": "customer",
"description": null
},
"guid": "9503d0e1-37d7-4456-8b79-30dda3199f67",
"status": "ACTIVE",
"displayText": "customer",
"classificationNames": []
},
{
"typeName": "hive_table",
"attributes": {
"owner": "hive",
"qualifiedName": "foodmart.store@Sandbox",
"name": "store",
"description": null
},
"guid": "83cd29e8-cca9-4595-9d3b-8479cd2fc3ee",
"status": "ACTIVE",
"displayText": "store",
"classificationNames": []
},
{
"typeName": "hive_table",
"attributes": {
"owner": "hive",
"qualifiedName": "default.sample_07@Sandbox",
"name": "sample_07",
"description": null
},
"guid": "908cba22-cfa3-429e-a116-51dcdcbfb003",
"status": "ACTIVE",
"displayText": "sample_07",
"classificationNames": []
},
{
"typeName": "hive_table",
"attributes": {
"owner": "hive",
"qualifiedName": "default.sample*_08@Sandbox",
"name": "sample_08",
"description": null
},
"guid": "c87f4c84-54e7-4c07-ac77-f32811b40fa5",
"status": "ACTIVE",
"displayText": "sample_08",
"classificationNames": []
},
{
"typeName": "hive_table",
"attributes": {
"owner": "raj_ops",
"qualifiedName": "default.employee@Sandbox",
"name": "employee",
"description": null
},
"guid": "8de87c74-3c5d-4b5c-8218-316f2b785f5d",
"status": "ACTIVE",
"displayText": "employee",
"classificationNames": []
}
]
}
Created 12-14-2017 10:22 AM
Glad that it worked. Can you please accept the answer. This will be really helpful for other community users for finding the answer quickly.
Created 12-14-2017 10:35 AM
If this is the best possible result I certainly will accept the answer. Because it's something I can work with.
But I really would like a Atlas REST API call that just gives results for the asteroids table only. That should be possible, shouldn't it?
Because now this command:
curl -iv -u holger_gov:holger_gov -X GET http://sandbox.hortonworks.com:21000/api/atlas/v2/search/dsl?typeName=hive_table&query=where+name%3D...
Gives the same result as if we omit the "where name='asteroids'" part:
curl -iv -u holger_gov:holger_gov -X GET http://sandbox.hortonworks.com:21000/api/atlas/v2/search/dsl?typeName=hive_table
Created 12-14-2017 10:51 AM
I tried this and it returns only the queried table
curl -X GET \ 'http://sandbox.hortonworks.com:21000/api/atlas/v2/search/dsl?typeName=hive_table&query=where%20name%3D%22asteroids%22' \ -H 'authorization: Basic YWRtaW46YWRtaW4='
Created 12-14-2017 12:06 PM
Glad that it worked. Can you please accept the answer. This will be really helpful for other community users for finding the answer quickly.
Created 12-14-2017 11:45 AM
That's it! Great work. Thank you very much.