1
ElasticSearchのインデックス作成を高速化するにはどうすればよいですか?
es = Elasticsearch(
[host_name],
port=9243,
http_auth=("*****","*******"),
use_ssl=True,
verify_certs=True,
ca_certs=certifi.where(),
sniff_on_start=True
)
...私はelasticsearchと初心者と私はPythonスクリプトで、(クラウド上でホストされている)弾性検索クラスタに1万人のランダムなイベントを記述する必要がここにインデックス付けのための私のコードです:
for i in range(1000000):
src_centers=['data center a','data center b','data center c','data center d','data center e']
transfer_src = np.random.choice(src_centers, p=[0.3, 0.175, 0.175, 0.175, 0.175])
dst_centers = [x for x in src_centers if x != transfer_src]
transfer_dst = np.random.choice(dst_centers)
final_transfer_status = ['transfer-success','transfer-failure']
transfer_starttime = generate_timestamp()
file_size=random.choice(range(1024,10000000000))
ftp={
'event_type': 'transfer-queued',
'uuid': uuid.uuid4(),
'src_site' : transfer_src,
'dst_site' : transfer_dst,
'timestamp': transfer_starttime,
'bytes' : file_size
}
print(i)
es.index(index='ft_initial', id=(i+1), doc_type='initial_transfer_details', body= ftp)
transfer_status = ['transfer-success', 'transfer-failure']
final_status = np.random.choice(transfer_status, p=[0.95,0.05])
ftp['event_type'] = final_status
if (final_status=='transfer-failure'):
time_delay = 10
else :
time_delay = int(transfer_time(file_size)) # ranges roughly from 0-10000 s
ftp['timestamp'] = transfer_starttime + timedelta(seconds=time_delay)
es.index(index='ft_final', id=(i+1), doc_type='final_transfer_details', body=ftp)
プロセスを高速化する方法はありますか?
助けてください/ポインタはありがとうございます。ありがとう。
何をスピードアップしますか?インデックス作成は?プログラム自体?あなたの要求を明確にしてください – Adonis
クラスタトポロジーを私たちと共有したり、断片、ノード(マスタ/データ)、クラスタマシンのハードウェア仕様を共有することはできますか?また、elasticsearch.ymlファイルを追加してください。 – user3775217
トポロジ:: {EVENT_TYPE: "転送キューに入れられた"、 UUID:471a885a-9d8a-4212-8ebc-d1bc96c91b3b、 バイト:5411345、 タイムスタンプ:2017-03-04T05:40:40 src_site:「データセンターA "、 dst_site:"データセンターc "} –