The following sample program will be used to illustrate the Bulk Load classes and methods.
class BulkLoadDemo { Record makeProductRecord(String name, int size, double price) { Record.Builder recBuilder = Record.newBuilder(); Assignment.Builder assgtBuilder = Assignment.newBuilder(); assgtBuilder.setName("Name"); assgtBuilder.setStringValue(name); assgtBuilder.setDataType(Assignment.DataType.STRING); Assignment nameAssgt = assgtBuilder.build(); recBuilder.setSpec(nameAssgt); assgtBuilder.clear(); assgtBuilder.setName("Size"); assgtBuilder.setIntValue(size); assgtBuilder.setDataType(Assignment.DataType.INT); Assignment sizeAssgt = assgtBuilder.build(); recBuilder.addAssignments(sizeAssgt); assgtBuilder.clear(); assgtBuilder.setName("Price"); assgtBuilder.setDoubleValue(price); assgtBuilder.setDataType(Assignment.DataType.DOUBLE); Assignment priceAssgt = assgtBuilder.build(); recBuilder.addAssignments(priceAssgt); Record product = recBuilder.build(); return product; } void main(int argc, String[] argv) { ErrorCallback errorCallback = new ErrorCallback() { void handleError(String reason, Record reject) { System.out.println("Record " + reject.getSpec().getName() + " rejected: " + reason); } }; FinishedCallback finishedCallback = new FinishedCallback() { void handleFinished() { System.out.println("Finished!"); } }; AbortCallback abortCallback = new AbortCallback() { void handleAbort(String reason) { System.out.println("Aborted: " + reason); } }; StatusCallback statusCallback = new StatusCallback() { void handleStatus(long recordsAdded, long recordsQueued, long recordsRejected, String state) { System.out.println("Added: " + recordsAdded + "\n" + "Queued: " + recordsQueued + "\n" + "Rejected: " + recordsRejected + "\n" + "State: " + state + "\n"); } }; BulkIngester ingester("endecaserver.example.com", 1234, // port false, // useSSL true, // doFinalMerge true, // doUpdateDictionary 90000 // timeout in ms errorCallback, finishedCallback, abortCallback, statusCallback); Record widget = makeProductRecord("Widget", 12, 99.95); Record thing = makeProductRecord("Thing", 110, 3.14); ingester.begin(); ingester.sendRecord(widget); ingester.requestStatusUpdate(); ingester.sendRecord(thing); ingester.endIngest(); } }