Пример #1
0
  private List<ConnectorSplit> getSplitsByTokenRange(CassandraTable table, String partitionId) {
    String schema = table.getTableHandle().getSchemaName();
    String tableName = table.getTableHandle().getTableName();
    String tokenExpression = table.getTokenExpression();

    ImmutableList.Builder<ConnectorSplit> builder = ImmutableList.builder();
    List<CassandraTokenSplitManager.TokenSplit> tokenSplits;
    try {
      tokenSplits = tokenSplitMgr.getSplits(schema, tableName);
    } catch (IOException e) {
      throw new RuntimeException(e);
    }
    for (CassandraTokenSplitManager.TokenSplit tokenSplit : tokenSplits) {
      String condition =
          buildTokenCondition(
              tokenExpression, tokenSplit.getStartToken(), tokenSplit.getEndToken());
      List<HostAddress> addresses =
          new HostAddressFactory().AddressNamesToHostAddressList(tokenSplit.getHosts());
      CassandraSplit split =
          new CassandraSplit(connectorId, schema, tableName, partitionId, condition, addresses);
      builder.add(split);
    }

    return builder.build();
  }