Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 Embulk 20150411 | PDF
#ccc_cd4 / #embulk
HDFS
MySQL
AmazonS3
CSV Files
SequenceFile
Salesforce.com
Elasticsearch
Cassandra
Hive
Redis
Broken
script :(
Sometimes
fails :(
No one
can fix :(
14
15.
#ccc_cd4 / #embulk
HDFS
MySQL
AmazonS3
CSV Files
SequenceFile
Salesforce.com
Elasticsearch
Cassandra
Hive
Redis
Broken
script :(
Sometimes
fails :(
No one
can fix :(
N x M
scripts!
> Poor error handling
> No retrying / resuming
> Low performance
> Often no maitainers
15
#ccc_cd4 / #embulk
Unsafe
airlift/slice- sun.misc.Unsafe APIのwrapper
> バイト列の直接操作(デ/シリアライズ)
> コピー削減
参考: http://frsyuki.hatenablog.com/entry/
2014/03/12/155231
public void addRecord()
{
// record header
bufferSlice.setInt(position, nextVariableLengthDataOffset);
bufferSlice.setBytes(position + 4, nullBitSet);
count++;
this.position += nextVariableLengthDataOffset;
this.nextVariableLengthDataOffset = fixedRecordSize;
Arrays.fill(nullBitSet, (byte) 0);
// flush if next record will not fit in this buffer
if (buffer.capacity() < position +
nextVariableLengthDataOffset + stringReferenceSize) {
flush();
}
}
M x N→ M + N
Nagios
MongoDB
Hadoop
Alerting
Amazon S3
Analysis
Archiving
MySQL
Apache
Frontend
Access logs
syslogd
App logs
System logs
Backend
Databases
buffer/filter/route