yayuyao created CALCITE-1974:
--------------------------------

             Summary: Can not query Druid table just inserted few minutes ago
                 Key: CALCITE-1974
                 URL: https://issues.apache.org/jira/browse/CALCITE-1974
             Project: Calcite
          Issue Type: Bug
          Components: druid
    Affects Versions: 1.13.0
            Reporter: yayuyao
            Assignee: Julian Hyde


I use Tranquility to insert a new table to Druid. After the Druid cluster 
receiving the data, I can query data via http://Broker:8082.
But Calcite-Druid can not query Druid table at this time. And waiting for a few 
moment, when I can check the table name from http://Coordinator:8081, the 
Calcite-Druid can query the data.

In 
calcite/druid/src/main/java/org/apache/calcite/adapter/druid/DruidConnectionImpl.java:561:
{code:java}
Set<String> tableNames() {
    final Map<String, String> requestHeaders =
        ImmutableMap.of("Content-Type", "application/json");
    final String data = null;
    final String url = coordinatorUrl + 
"/druid/coordinator/v1/metadata/datasources";
    if (CalcitePrepareImpl.DEBUG) {
      System.out.println("Druid: table names" + data + "; " + url);
    }
    try (InputStream in0 = post(url, data, requestHeaders, 10000, 1800000);
         InputStream in = traceResponse(in0)) {
      final ObjectMapper mapper = new ObjectMapper();
      final CollectionType listType =
          mapper.getTypeFactory().constructCollectionType(List.class,
              String.class);
      final List<String> list = mapper.readValue(in, listType);
      return ImmutableSet.copyOf(list);
    } catch (IOException e) {
      throw new RuntimeException(e);
    }
  }
{code}

We can see in Line 5 above, the program uses the URL of Coordinator to get the 
table names. But after inserting the data, this URL can not return the new 
table name, but URL of Broker can return the inserted table name just. 
And after data persistence, we can check data source name in Coordinate. And 
Calcite-Druid can query too.

In Druid document, I find that:

{panel:title=My title}
/druid/v2/datasources
Returns a list of queryable datasources.
{panel}

{panel:title=My title}
/druid/coordinator/v1/metadata/datasources
Returns a list of the names of enabled datasources in the cluster.{panel}

So, what is the difference between "queryable" and "enabled". I think we should 
support to query queryable table.




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to