public void copyFrom(BytesRef from) { addEntry(from.length()); from.copyTo(data); }
public String toString() { BytesArray ba = new BytesArray(length()); copyTo(ba); return ba.toString(); } }
@Override public Writable serialize(Object data, ObjectInspector objInspector) throws SerDeException { lazyInitializeWrite(); // serialize the type directly to json (to avoid converting to Writable and then serializing) scratchPad.reset(); hiveType.setObjectInspector(objInspector); hiveType.setObject(data); // We use the command directly instead of the bulk entry writer since there is no close() method on SerDes. // See FileSinkOperator#process() for more info of how this is used with the output format. command.write(hiveType).copyTo(scratchPad); result.setContent(scratchPad); return result; }
@Test(expected = EsHadoopIllegalArgumentException.class) public void testIdMandatory() throws Exception { assumeTrue(ConfigurationOptions.ES_OPERATION_UPDATE.equals(operation)); Settings set = settings(); set.setProperty(ConfigurationOptions.ES_MAPPING_ID, ""); create(set).write(data).copyTo(ba); }
@Test public void testNoHeader() throws Exception { assumeFalse(ConfigurationOptions.ES_OPERATION_UPDATE.equals(operation)); create(settings()).write(data).copyTo(ba); String result = prefix() + "}}" + map(); assertEquals(result, ba.toString()); }
@Test // check user friendliness and escape the string if needed public void testConstantId() throws Exception { Settings settings = settings(); noId = true; settings.setProperty(ConfigurationOptions.ES_MAPPING_ID, "<foobar>"); create(settings).write(data).copyTo(ba); String result = prefix() + "\"_id\":\"foobar\"}}" + map(); assertEquals(result, ba.toString()); }
@Test public void testIdPattern() throws Exception { Settings settings = settings(); settings.setResourceWrite("foo/{n}"); create(settings).write(data).copyTo(ba); String result = "{\"" + operation + "\":{\"_index\":\"foo\",\"_type\":\"1\"" + (isUpdateOp() ? ",\"_id\":2" : "") + "}}" + map(); assertEquals(result, ba.toString()); }
@Test public void testTimestamp() throws Exception { Settings settings = settings(); settings.setProperty(ConfigurationOptions.ES_MAPPING_TIMESTAMP, "<3>"); create(settings).write(data).copyTo(ba); String result = prefix() + "\"_timestamp\":3}}" + map(); assertEquals(result, ba.toString()); }
@Test public void testTtl() throws Exception { Settings settings = settings(); settings.setProperty(ConfigurationOptions.ES_MAPPING_TTL, "<2>"); create(settings).write(data).copyTo(ba); String result = prefix() + "\"_ttl\":2}}" + map(); assertEquals(result, ba.toString()); }
@Test public void testUpdateOnlyInlineScript7X() throws Exception { assumeTrue(ConfigurationOptions.ES_OPERATION_UPDATE.equals(operation)); assumeTrue(version.onOrAfter(EsMajorVersion.V_7_X)); Settings set = settings(); set.setProperty(ConfigurationOptions.ES_INDEX_AUTO_CREATE, "yes"); set.setProperty(ConfigurationOptions.ES_UPDATE_RETRY_ON_CONFLICT, "3"); set.setProperty(ConfigurationOptions.ES_UPDATE_SCRIPT_INLINE, "counter = 3"); set.setProperty(ConfigurationOptions.ES_UPDATE_SCRIPT_LANG, "groovy"); create(set).write(data).copyTo(ba); String result = "{\"" + operation + "\":{\"_id\":2,\"retry_on_conflict\":3}}\n" + "{\"script\":{\"source\":\"counter = 3\",\"lang\":\"groovy\"}}\n"; assertEquals(result, ba.toString()); }
@Test public void testUpdateOnlyInlineScript6X() throws Exception { assumeTrue(ConfigurationOptions.ES_OPERATION_UPDATE.equals(operation)); assumeTrue(version.on(EsMajorVersion.V_6_X)); Settings set = settings(); set.setProperty(ConfigurationOptions.ES_INDEX_AUTO_CREATE, "yes"); set.setProperty(ConfigurationOptions.ES_UPDATE_RETRY_ON_CONFLICT, "3"); set.setProperty(ConfigurationOptions.ES_UPDATE_SCRIPT_INLINE, "counter = 3"); set.setProperty(ConfigurationOptions.ES_UPDATE_SCRIPT_LANG, "groovy"); create(set).write(data).copyTo(ba); String result = "{\"" + operation + "\":{\"_id\":2,\"_retry_on_conflict\":3}}\n" + "{\"script\":{\"source\":\"counter = 3\",\"lang\":\"groovy\"}}\n"; assertEquals(result, ba.toString()); }
@Test public void testUpdateOnlyParamFileScript1X() throws Exception { assumeTrue(ConfigurationOptions.ES_OPERATION_UPDATE.equals(operation)); assumeTrue(version.onOrBefore(EsMajorVersion.V_1_X)); Settings set = settings(); set.setProperty(ConfigurationOptions.ES_MAPPING_ID, "n"); set.setProperty(ConfigurationOptions.ES_UPDATE_SCRIPT_FILE, "set_counter"); set.setProperty(ConfigurationOptions.ES_UPDATE_SCRIPT_LANG, "groovy"); set.setProperty(ConfigurationOptions.ES_UPDATE_SCRIPT_PARAMS, " param1:<1>, param2:n "); create(set).write(data).copyTo(ba); String result = "{\"" + operation + "\":{\"_id\":1}}\n" + "{\"params\":{\"param1\":1,\"param2\":1},\"lang\":\"groovy\",\"script_file\":\"set_counter\"}\n"; assertEquals(result, ba.toString()); }
@Test public void testParent() throws Exception { assumeTrue(version.onOrBefore(EsMajorVersion.V_6_X)); Settings settings = settings(); settings.setProperty(ConfigurationOptions.ES_MAPPING_PARENT, "<5>"); create(settings).write(data).copyTo(ba); String result = prefix() + "\"_parent\":5}}" + map(); assertEquals(result, ba.toString()); }
@Test public void testRouting7X() throws Exception { assumeTrue(version.onOrAfter(EsMajorVersion.V_7_X)); Settings settings = settings(); settings.setProperty(ConfigurationOptions.ES_MAPPING_ROUTING, "<4>"); create(settings).write(data).copyTo(ba); String result = prefix() + "\"routing\":4}}" + map(); assertEquals(result, ba.toString()); }
@Test public void testVersion7X() throws Exception { assumeTrue(version.onOrAfter(EsMajorVersion.V_7_X)); Settings settings = settings(); settings.setProperty(ConfigurationOptions.ES_MAPPING_VERSION, "<3>"); create(settings).write(data).copyTo(ba); String result = prefix() + "\"version\":3,\"version_type\":\"external\"}}" + map(); assertEquals(result, ba.toString()); }
@Test public void testRouting() throws Exception { assumeTrue(version.onOrBefore(EsMajorVersion.V_6_X)); Settings settings = settings(); settings.setProperty(ConfigurationOptions.ES_MAPPING_ROUTING, "<4>"); create(settings).write(data).copyTo(ba); String result = prefix() + "\"_routing\":4}}" + map(); assertEquals(result, ba.toString()); }
@Test public void testParent7X() throws Exception { assumeTrue(version.onOrAfter(EsMajorVersion.V_7_X)); Settings settings = settings(); settings.setProperty(ConfigurationOptions.ES_MAPPING_PARENT, "<5>"); create(settings).write(data).copyTo(ba); String result = prefix() + "\"parent\":5}}" + map(); assertEquals(result, ba.toString()); }
@Test public void testVersion() throws Exception { assumeTrue(version.onOrBefore(EsMajorVersion.V_6_X)); Settings settings = settings(); settings.setProperty(ConfigurationOptions.ES_MAPPING_VERSION, "<3>"); create(settings).write(data).copyTo(ba); String result = prefix() + "\"_version\":3,\"_version_type\":\"external\"}}" + map(); assertEquals(result, ba.toString()); }
@Test public void testAll() throws Exception { assumeTrue(version.onOrBefore(EsMajorVersion.V_6_X)); Settings settings = settings(); settings.setProperty(ConfigurationOptions.ES_MAPPING_ID, "n"); settings.setProperty(ConfigurationOptions.ES_MAPPING_TTL, "<2>"); settings.setProperty(ConfigurationOptions.ES_MAPPING_ROUTING, "s"); create(settings).write(data).copyTo(ba); String result = "{\"" + operation + "\":{\"_id\":1,\"_routing\":\"v\",\"_ttl\":2}}" + map(); assertEquals(result, ba.toString()); }
@Test public void testAll7X() throws Exception { assumeTrue(version.onOrAfter(EsMajorVersion.V_7_X)); Settings settings = settings(); settings.setProperty(ConfigurationOptions.ES_MAPPING_ID, "n"); settings.setProperty(ConfigurationOptions.ES_MAPPING_TTL, "<2>"); settings.setProperty(ConfigurationOptions.ES_MAPPING_ROUTING, "s"); create(settings).write(data).copyTo(ba); String result = "{\"" + operation + "\":{\"_id\":1,\"routing\":\"v\",\"_ttl\":2}}" + map(); assertEquals(result, ba.toString()); }