use of com.alibaba.otter.shared.etl.model.EventData in project otter by alibaba.
the class DbLoadMergerTest method makeDeleteEventData.
private EventData makeDeleteEventData() {
EventData eventData = new EventData();
eventData.setEventType(EventType.DELETE);
eventData.setSchemaName(SCHEMA_NAME);
eventData.setTableName(TABLE_NAME);
eventData.setTableId(TABLE_ID);
List<EventColumn> keys = new ArrayList<EventColumn>();
keys.add(makeEventColumn(KEY_NAME, KEY_VALUE, true));
eventData.setKeys(keys);
return eventData;
}
use of com.alibaba.otter.shared.etl.model.EventData in project otter by alibaba.
the class DbLoadMergerTest method testMergeWithSameKeyOfIUD.
/**
* 测试insert+update+delete
*/
@Test
public void testMergeWithSameKeyOfIUD() {
Map<RowKey, EventData> mergeMap = new MapMaker().makeMap();
DbLoadMerger.merge(makeInsertEventData(), mergeMap);
DbLoadMerger.merge(makeUpdateEventData(), mergeMap);
DbLoadMerger.merge(makeDeleteEventData(), mergeMap);
for (Entry<RowKey, EventData> entry : mergeMap.entrySet()) {
RowKey key = entry.getKey();
EventColumn keyColumn = key.getKeys().get(0);
Assert.assertEquals(KEY_VALUE, keyColumn.getColumnValue());
Assert.assertEquals(KEY_NAME, keyColumn.getColumnName());
EventData eventData = entry.getValue();
Assert.assertEquals(SCHEMA_NAME, eventData.getSchemaName());
Assert.assertEquals(TABLE_NAME, eventData.getTableName());
Assert.assertEquals(TABLE_ID, eventData.getTableId());
Assert.assertEquals(EventType.DELETE, eventData.getEventType());
// 不存在oldKeys
Assert.assertEquals(eventData.getOldKeys().size(), 0);
List<EventColumn> columns = eventData.getColumns();
Assert.assertEquals(0, columns.size());
}
}
use of com.alibaba.otter.shared.etl.model.EventData in project otter by alibaba.
the class DbLoadMergerTest method makeUpdateEventData.
private EventData makeUpdateEventData(String oldKeyValue, String newKeyValue) {
EventData eventData = new EventData();
eventData.setEventType(EventType.UPDATE);
eventData.setSchemaName(SCHEMA_NAME);
eventData.setTableName(TABLE_NAME);
eventData.setTableId(TABLE_ID);
List<EventColumn> oldKeys = new ArrayList<EventColumn>();
oldKeys.add(makeEventColumn(KEY_NAME, oldKeyValue, true));
List<EventColumn> newKeys = new ArrayList<EventColumn>();
newKeys.add(makeEventColumn(KEY_NAME, newKeyValue, true));
eventData.setKeys(newKeys);
eventData.setOldKeys(oldKeys);
return eventData;
}
use of com.alibaba.otter.shared.etl.model.EventData in project otter by alibaba.
the class FreedomExtractorTest method test_mysql.
@Test
public void test_mysql() {
final Pipeline pipeline = new Pipeline();
pipeline.setId(100L);
int start = RandomUtils.nextInt();
int count = 10;
List<DataMediaPair> pairs = getDataMediaPairForMysql(start, count);
pipeline.setPairs(pairs);
new NonStrictExpectations() {
{
configClientService.findPipeline(100L);
returns(pipeline);
}
};
// 构造数据
RowBatch rowBatch = new RowBatch();
rowBatch.setIdentity(identity);
for (int tableId = start; tableId < start + count; tableId++) {
for (int i = start; i < start + count; i++) {
EventData eventData = getEventData(tableId, i);
eventData.setSchemaName("retl");
eventData.setTableName("retl_buffer");
rowBatch.merge(eventData);
}
}
DbBatch dbBatch = new DbBatch(rowBatch);
freedomExtractor.extract(dbBatch);
want.collection(dbBatch.getRowBatch().getDatas()).sizeEq(count * count);
}
use of com.alibaba.otter.shared.etl.model.EventData in project otter by alibaba.
the class FreedomExtractorTest method getEventData.
private EventData getEventData(long tableId, int value) {
EventData eventData = new EventData();
eventData.setTableId(tableId);
eventData.setEventType(EventType.INSERT);
eventData.setExecuteTime(new Date().getTime());
eventData.setKeys(getPrimary(value));
eventData.setColumns(getColumn(value));
return eventData;
}
Aggregations