in http/get_simple/java/server/src/main/java/com/example/ArrowHttpServer.java [65:113]
public static List<ArrowRecordBatch> getPutData() {
int totalRecords = 100000000;
int length = 4096;
List<ArrowRecordBatch> batches = new ArrayList<>();
try (VectorSchemaRoot root = VectorSchemaRoot.create(schema, allocator)) {
String[] names = schema.getFields().stream().map(Field::getName).toArray(String[]::new);
for (String name : names) {
byte[] randomBytes = new byte[length * 8];
random.nextBytes(randomBytes);
byte[] validityBytes = new byte[length / 8];
Arrays.fill(validityBytes, (byte) 0xFF);
BigIntVector vector = (BigIntVector) root.getVector(name);
vector.allocateNew(length);
vector.setValueCount(length);
ArrowBuf dataBuffer = vector.getDataBuffer();
dataBuffer.setBytes(0, randomBytes);
ArrowBuf validityBuffer = vector.getValidityBuffer();
validityBuffer.setBytes(0, validityBytes);
root.setRowCount(length);
}
int records = 0;
int lastLength;
while (records < totalRecords) {
if (records + length > totalRecords) {
lastLength = totalRecords - records;
try (VectorSchemaRoot slice = root.slice(0, lastLength)) {
VectorUnloader unloader = new VectorUnloader(slice);
ArrowRecordBatch arb = unloader.getRecordBatch();
batches.add(arb);
}
records += lastLength;
} else {
VectorUnloader unloader = new VectorUnloader(root);
ArrowRecordBatch arb = unloader.getRecordBatch();
batches.add(arb);
records += length;
}
}
}
return batches;
}