modify ddl and configuration template directory

This commit is contained in:
doufenghu
2024-05-16 19:05:56 +08:00
parent 60a8c49a40
commit ae929b7d4b
690 changed files with 5478 additions and 5478 deletions

View File

@@ -0,0 +1,11 @@
select 'session_record_old' as table_name, count(*) as cnt from tsg_galaxy_v3.session_record_old;
select 'security_event_old' as table_name, count(*) as cnt from tsg_galaxy_v3.security_event_old;
select 'transaction_record_old' as table_name, count(*) as cnt from tsg_galaxy_v3.transaction_record_old;
select 'voip_record_old' as table_name, count(*) as cnt from tsg_galaxy_v3.voip_record_old;
select 'proxy_event_old' as table_name, count(*) as cnt from tsg_galaxy_v3.proxy_event_old;
select 'dos_event_old' as table_name, count(*) as cnt from tsg_galaxy_v3.dos_event_old;

View File

@@ -0,0 +1,107 @@
set distributed_ddl_task_timeout = 180;
-- 删除源表同步子表物化视图
drop VIEW IF EXISTS tsg_galaxy_v3.common_client_ip ON CLUSTER ck_cluster;
drop VIEW IF EXISTS tsg_galaxy_v3.common_http_domain ON CLUSTER ck_cluster;
drop VIEW IF EXISTS tsg_galaxy_v3.common_server_ip ON CLUSTER ck_cluster;
drop VIEW IF EXISTS tsg_galaxy_v3.common_server_domain ON CLUSTER ck_cluster;
-- 删除源表子表相关回表
drop table IF EXISTS tsg_galaxy_v3.interim_session_record_local ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_client_ip_local ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_server_domain_local ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_server_ip_local ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_http_domain_local ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.interim_session_record ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_client_ip ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_server_domain ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_server_ip ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_http_domain ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.interim_session_record ON CLUSTER ck_query;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_client_ip ON CLUSTER ck_query;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_server_domain ON CLUSTER ck_query;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_server_ip ON CLUSTER ck_query;
drop table IF EXISTS tsg_galaxy_v3.session_record_http_domain ON CLUSTER ck_query;
-- 源表rename到历史表
RENAME TABLE tsg_galaxy_v3.session_record_local to tsg_galaxy_v3.session_record_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.security_event_local to tsg_galaxy_v3.security_event_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.transaction_record_local to tsg_galaxy_v3.transaction_record_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.voip_record_local to tsg_galaxy_v3.voip_record_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.proxy_event_local to tsg_galaxy_v3.proxy_event_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.dos_event_local to tsg_galaxy_v3.dos_event_local_old on cluster ck_cluster;
-- 删除源表分布式表
DROP TABLE IF EXISTS tsg_galaxy_v3.session_record ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.session_record ON CLUSTER ck_cluster;
DROP TABLE IF EXISTS tsg_galaxy_v3.security_event ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.security_event ON CLUSTER ck_cluster;
DROP TABLE IF EXISTS tsg_galaxy_v3.transaction_record ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.transaction_record ON CLUSTER ck_cluster;
DROP TABLE IF EXISTS tsg_galaxy_v3.voip_record ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.voip_record ON CLUSTER ck_cluster;
DROP TABLE IF EXISTS tsg_galaxy_v3.proxy_event ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.proxy_event ON CLUSTER ck_cluster;
DROP TABLE IF EXISTS tsg_galaxy_v3.dos_event ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.dos_event ON CLUSTER ck_cluster;
-- assessment_event不用迁移
drop table IF EXISTS tsg_galaxy_v3.assessment_event on cluster ck_query;
drop table IF EXISTS tsg_galaxy_v3.assessment_event on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.assessment_event_local on cluster ck_cluster;
-- 删除废弃表
drop table IF EXISTS tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.gtpc_record on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.gtpc_record on cluster ck_query;
drop table IF EXISTS tsg_galaxy_v3.radius_onff_log_local on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.radius_onff_log on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.radius_onff_log on cluster ck_query;
drop table IF EXISTS tsg_galaxy_v3.radius_record_local on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.radius_record on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.radius_record on cluster ck_query;
drop table IF EXISTS tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query;
drop table IF EXISTS tsg_galaxy_v3.active_defence_event ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.active_defence_event ON CLUSTER ck_query;
drop table IF EXISTS tsg_galaxy_v3.active_defence_event_local ON CLUSTER ck_cluster;
-- 创建源码分布式表old
create table IF NOT EXISTS tsg_galaxy_v3.session_record_old ON CLUSTER ck_query (
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_v3,session_record_local_old,rand());
create table IF NOT EXISTS tsg_galaxy_v3.security_event_old ON CLUSTER ck_query (
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_v3,security_event_local_old,rand());
CREATE TABLE IF NOT EXISTS tsg_galaxy_v3.transaction_record_old ON CLUSTER ck_query(
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_v3,transaction_record_local_old,rand());
CREATE TABLE IF NOT EXISTS tsg_galaxy_v3.voip_record_old ON CLUSTER ck_query(
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_v3,voip_record_local_old,rand());
create table IF NOT EXISTS tsg_galaxy_v3.proxy_event_old ON CLUSTER ck_query (
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_v3,proxy_event_local_old,rand());
CREATE TABLE IF NOT EXISTS tsg_galaxy_v3.dos_event_old ON CLUSTER ck_query(
log_id UInt64,
profile_id UInt64,
start_time Int64
) ENGINE = Distributed(ck_cluster,tsg_galaxy_v3,dos_event_local_old,rand());

View File

@@ -0,0 +1,20 @@
SELECT log_id, recv_time, vsys_id, assessment_date, lot_number, file_name, assessment_file, assessment_type, features, `size`, file_checksum_sha
FROM tsg_galaxy_v3.assessment_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT vsys_id, recv_time, log_id, profile_id, start_time, end_time, attack_type, severity, conditions, destination_ip, destination_country, source_ip_list, source_country_list, session_rate, packet_rate, bit_rate
FROM tsg_galaxy_v3.dos_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, direction, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, shaping_rule_list, proxy_rule_list, statistics_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, app_extra_info, fqdn_category_list, ip_protocol, decoded_path, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, ssl_version, ssl_sni, ssl_san, ssl_cn, ssl_handshake_latency_ms, ssl_ja3_hash, ssl_ja3s_hash, ssl_cert_issuer, ssl_cert_subject, ssl_esni_flag, ssl_ech_flag, dtls_cookie, dtls_version, dtls_sni, dtls_san, dtls_cn, dtls_handshake_latency_ms, dtls_ja3_fingerprint, dtls_ja3_hash, dtls_cert_issuer, dtls_cert_subject, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_starttls_flag, mail_eml_file, ftp_account, ftp_url, ftp_link_type, quic_version, quic_sni, quic_user_agent, rdp_cookie, rdp_security_protocol, rdp_client_channels, rdp_keyboard_layout, rdp_client_version, rdp_client_name, rdp_client_product_id, rdp_desktop_width, rdp_desktop_height, rdp_requested_color_depth, rdp_certificate_type, rdp_certificate_count, rdp_certificate_permanent, rdp_encryption_level, rdp_encryption_method, ssh_version, ssh_auth_success, ssh_client_version, ssh_server_version, ssh_cipher_alg, ssh_mac_alg, ssh_compression_alg, ssh_kex_alg, ssh_host_key_alg, ssh_host_key, ssh_hassh, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, stratum_cryptocurrency, stratum_mining_pools, stratum_mining_program, stratum_mining_subscribe, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, encapsulation, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_v3.monitor_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, direction, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, shaping_rule_list, proxy_rule_list, statistics_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, app_extra_info, fqdn_category_list, ip_protocol, decoded_path, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, doh_url, doh_host, doh_request_line, doh_response_line, doh_cookie, doh_referer, doh_user_agent, doh_content_length, doh_content_type, doh_set_cookie, doh_version, doh_message_id, doh_qr, doh_opcode, doh_aa, doh_tc, doh_rd, doh_ra, doh_rcode, doh_qdcount, doh_ancount, doh_nscount, doh_arcount, doh_qname, doh_qtype, doh_qclass, doh_cname, doh_sub, doh_rr, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, encapsulation, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_v3.proxy_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, direction, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, shaping_rule_list, proxy_rule_list, statistics_rule_list, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, app_extra_info, fqdn_category_list, ip_protocol, decoded_path, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, ssl_version, ssl_sni, ssl_san, ssl_cn, ssl_handshake_latency_ms, ssl_ja3_hash, ssl_ja3s_hash, ssl_cert_issuer, ssl_cert_subject, ssl_esni_flag, ssl_ech_flag, dtls_cookie, dtls_version, dtls_sni, dtls_san, dtls_cn, dtls_handshake_latency_ms, dtls_ja3_fingerprint, dtls_ja3_hash, dtls_cert_issuer, dtls_cert_subject, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_starttls_flag, mail_eml_file, ftp_account, ftp_url, ftp_link_type, quic_version, quic_sni, quic_user_agent, rdp_cookie, rdp_security_protocol, rdp_client_channels, rdp_keyboard_layout, rdp_client_version, rdp_client_name, rdp_client_product_id, rdp_desktop_width, rdp_desktop_height, rdp_requested_color_depth, rdp_certificate_type, rdp_certificate_count, rdp_certificate_permanent, rdp_encryption_level, rdp_encryption_method, ssh_version, ssh_auth_success, ssh_client_version, ssh_server_version, ssh_cipher_alg, ssh_mac_alg, ssh_compression_alg, ssh_kex_alg, ssh_host_key_alg, ssh_host_key, ssh_hassh, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, stratum_cryptocurrency, stratum_mining_pools, stratum_mining_program, stratum_mining_subscribe, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, encapsulation, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_v3.security_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, direction, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, shaping_rule_list, proxy_rule_list, statistics_rule_list, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, app_extra_info, fqdn_category_list, ip_protocol, decoded_path, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, ssl_version, ssl_sni, ssl_san, ssl_cn, ssl_handshake_latency_ms, ssl_ja3_hash, ssl_ja3s_hash, ssl_cert_issuer, ssl_cert_subject, ssl_esni_flag, ssl_ech_flag, dtls_cookie, dtls_version, dtls_sni, dtls_san, dtls_cn, dtls_handshake_latency_ms, dtls_ja3_fingerprint, dtls_ja3_hash, dtls_cert_issuer, dtls_cert_subject, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_starttls_flag, mail_eml_file, ftp_account, ftp_url, ftp_link_type, quic_version, quic_sni, quic_user_agent, rdp_cookie, rdp_security_protocol, rdp_client_channels, rdp_keyboard_layout, rdp_client_version, rdp_client_name, rdp_client_product_id, rdp_desktop_width, rdp_desktop_height, rdp_requested_color_depth, rdp_certificate_type, rdp_certificate_count, rdp_certificate_permanent, rdp_encryption_level, rdp_encryption_method, ssh_version, ssh_auth_success, ssh_client_version, ssh_server_version, ssh_cipher_alg, ssh_mac_alg, ssh_compression_alg, ssh_kex_alg, ssh_host_key_alg, ssh_host_key, ssh_hassh, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, stratum_cryptocurrency, stratum_mining_pools, stratum_mining_program, stratum_mining_subscribe, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, encapsulation, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, ingestion_time, processing_time, insert_time, address_type, vsys_id, client_ip, client_port, server_ip, server_port, sent_pkts, received_pkts, sent_bytes, received_bytes, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_starttls_flag, mail_eml_file, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye
FROM tsg_galaxy_v3.transaction_record where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, direction, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, shaping_rule_list, proxy_rule_list, statistics_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, app_extra_info, fqdn_category_list, ip_protocol, decoded_path, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, encapsulation, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_v3.voip_record where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');

View File

@@ -0,0 +1,10 @@
set distributed_ddl_task_timeout = 180;
-- 删除旧表同步新表物化视图, 七个表
drop view if exists tsg_galaxy_v3.session_record_local_2307_to_2402_view on cluster ck_cluster;
drop view if exists tsg_galaxy_v3.security_event_local_2307_to_security_event_local_2402_view on cluster ck_cluster;
drop view if exists tsg_galaxy_v3.security_event_local_2307_to_monitor_event_local_2402_view on cluster ck_cluster;
drop view if exists tsg_galaxy_v3.transaction_record_local_2307_to_2402_view on cluster ck_cluster;
drop view if exists tsg_galaxy_v3.voip_record_local_2307_to_2402_view on cluster ck_cluster;
drop view if exists tsg_galaxy_v3.proxy_event_local_2307_to_2402_view on cluster ck_cluster;
drop view if exists tsg_galaxy_v3.dos_event_local_2307_to_2402_view on cluster ck_cluster;

View File

@@ -0,0 +1,17 @@
set distributed_ddl_task_timeout = 180;
-- 删除旧表
drop table IF EXISTS tsg_galaxy_v3.session_record_local_old on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.security_event_local_old on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.transaction_record_local_old on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.voip_record_local_old on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.proxy_event_local_old on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.dos_event_local_old on cluster ck_cluster;
-- 删除旧表分布式表
DROP TABLE IF EXISTS tsg_galaxy_v3.session_record_old ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.security_event_old ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.transaction_record_old ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.voip_record_old ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.proxy_event_old ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.dos_event_old ON CLUSTER ck_query;

View File

@@ -0,0 +1,314 @@
由于需要升级多个数据中心,为了保证业务连续性且不丢失数据,采用实时增量同步的方法进行数据迁移。
具体步骤:
- Step1 停止国家中心gohangout入库任务。
- Step2 23.07版本clickhouse库表_local表重命名_local_old,删除相关视图及废弃表。
- Step3 升级国家中心初始化24.02版本clickhouse库表并进行校验。
- Step4 国家中心ck创建同步物化视图*_local_old->*_local。gohangout入库任务修改配置将入库表修改为*_local_old,已经删除的库表对应的gohangout任务也可删除gohangout保留任务session_record,security_event,transaction_record,voip_record,proxy_event,dos_event,重启gohangout。
- Step5 : 单个分中心升级TSG OS → 分中心Kafka → 分中心ETLgrootstream→ 国家中心Kafka*-PROCESSED → 国家中心Groot → 24.02库表
- 未升级的分中心仍保留原先的ETL任务最终汇入国家中心kafka(*-COMPLETED)中→ 国家中心gohangout → *_local_old库表 -> ck物化视图同步至24.02库表中
- Step6 : 所有分中心升级完毕关闭国家中心gohangout删除ck同步物化视图。
- Step7 : 按照具体情况选择是否删除所有的历史表 *_local_old或是否启动离线同步历史数据任务。
# 说明
* 请按步骤依次执行,执行脚本报错时联系研发处理后再执行之后的步骤。
* 所有ck步骤都需要在query节点执行
* 执行所有sql语句之前需要停止日志留存调度任务确保ck中无分布式ddl语句H执行否则执行的sql会阻塞住影响后续步骤执行
验证sql需要在query节点执行
clickhouse-client -h 127.0.0.1 --port 9001 -m -u default --password ****** --query "select query from system.distributed_ddl_queue where status =0 limit 1"
若返回结果为空则可执行升级步骤,否则需要等待。
# 一、停止旧表ck入库任务
停止旧表ck入库任务
# 二、旧表重命名为历史表
* 1.重命名旧表, 删除废弃表
```sql
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 01_rename_old_table.sql
```
* 2.查看旧表数据量
```
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 01_cat_old_table_row_count.sql
```
# 三、初始化新表
* 1.执行2402版本初始化建表语句
```
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 02_init_new_table.sql
```
* 2.校验表结构
```
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 03_check.sql
```
**无报错信息说明校验通过**
# 四、创建旧表同步新表任务(可选)
创建旧表同步到新表的物化视图(如果还有分数据中心向旧表写数据)
```sh
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 04_create_table_2307_to_2402_view.sql
```
# 五、启动ck入库任务
* 1.启动新表ck入库任务
* 2.启动旧表ck入库任务(如果还有分数据中心向旧表写数据)
```sh
# 重命名旧表, 删除废弃表后, 存在的旧表:
tsg_galaxy_v3.session_record_local_old
tsg_galaxy_v3.security_event_local_old
tsg_galaxy_v3.transaction_record_local_old
tsg_galaxy_v3.voip_record_local_old
tsg_galaxy_v3.proxy_event_local_old
tsg_galaxy_v3.dos_event_local_old
```
* 3.查看旧表是否有数据入库(间隔一段时间查询,后面查询比前面查询行数多说明有数据写入)
```
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 01_cat_old_table_row_count.sql
```
# 六、各个数据中心全部升级完成后停止旧表ck入库任务
* 1.升级各个数据中心各个数据中心全部升级完成后停止旧表ck入库任务(如果启动的话)
* 2.删除旧表同步新表物化视图
```sh
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 05_drop_table_2307_to_2402_view.sql
```
# 七、离线同步历史数据(可选)
在query节点执行以下步骤iplist.txt中为ck所有data节点ip地址。
步骤描述:
* 1.进入migrate_table_2402文件夹,使脚本可执行
```
chmod +x ./*.sh
```
* 2.分发迁移脚本到data节点
```
./01_send_migrate_table_scripts.sh
```
* 2.选择迁移某个表,同步需要时间区间的数据,时间区间:[实时同步任务开始时间向前推n天, 实时同步任务开始时间),时间区间为左闭右开,不包含结束时间点。
```
# 迁移security_event表
./02_start_migrate_table.sh security_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
```
* 3.监控data节点迁移情况所有表迁移完成后确认每个节点同步数据成功/失败批次数,如有失败批次确认是否需要处理
```
# 监控security_event表迁移
./03_monitor_migrate_table.sh security_event
```
* 4.选择下个张需要迁移的表重复2-4步骤。支持选择迁移的表有: security_event, monitor_event, session_record, transaction_record, voip_record, proxy_event, dos_event。
迁移和监控各个表执行命令示例:
```sh
# 迁移security_event表
./02_start_migrate_table.sh security_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控security_event表迁移
./03_monitor_migrate_table.sh security_event
# 迁移monitor_event表
./02_start_migrate_table.sh monitor_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控monitor_event表迁移
./03_monitor_migrate_table.sh monitor_event
# 迁移session_record表
./02_start_migrate_table.sh session_record "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控session_record表迁移
./03_monitor_migrate_table.sh session_record
# 迁移transaction_record表
./02_start_migrate_table.sh transaction_record "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控transaction_record表迁移
./03_monitor_migrate_table.sh transaction_record
# 迁移voip_record表
./02_start_migrate_table.sh voip_record "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控voip_record表迁移
./03_monitor_migrate_table.sh voip_record
# 迁移proxy_event表
./02_start_migrate_table.sh proxy_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控proxy_event表迁移
./03_monitor_migrate_table.sh proxy_event
# 迁移dos_event表
./02_start_migrate_table.sh dos_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控dos_event表迁移
./03_monitor_migrate_table.sh dos_event
```
迁移日志无报错,数据迁移完成。
如果有数据迁移失败批次,查看新老表迁移数据量对应情况(ck每台**data**节点)
```sql
-- security_event
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.security_event_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
and common_action in (16, 96)
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.security_event_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- monitor_event
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.security_event_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
and common_action = 1
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.monitor_event_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- session_record
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.session_record_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.session_record_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- transaction_record
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.transaction_record_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.transaction_record_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- voip_record
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.voip_record_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.voip_record_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- proxy_event
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.proxy_event_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.proxy_event_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- dos_event
SELECT
date_trunc('day', toDateTime(start_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.dos_event_local_old
WHERE start_time>= toUnixTimestamp('2024-01-10 00:00:00') and start_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(start_time))
order by d
;
SELECT
date_trunc('day', toDateTime(start_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.dos_event_local
WHERE start_time >= toUnixTimestamp('2024-01-10 00:00:00') and start_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(start_time))
order by d
;
```
# 八、删除旧表
数据迁移完成后,不需要查看旧表时,删除旧表。
```sh
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 06_drop_old_table.sql
```

View File

@@ -0,0 +1,15 @@
#!/bin/bash
home=$(cd `dirname $0`; pwd)
# 遍历每个节点执行迁移
for ip in `cat iplist.txt`
do
# 后台执行,输出日志
echo "$ip节点"
ssh $ip "[ ! -d $home ] && mkdir -p $home"
scp -r $home/*local_table_to_2402.sh $ip:$home/
ssh $ip "cd $home && chmod +x ./*.sh"
echo ""
done

View File

@@ -0,0 +1,84 @@
#!/bin/bash
# 本脚本逐时间段按最新往前顺序迁移clickhouse数据TSG24.01日志重组后数据迁移
# 迁移表 参数可选值session_recordsecurity_eventmonitor_eventtransaction_recordvoip_recordproxy_eventdos_event
table=$1
# 数据开始时间(UTC) 参数, 例如:"2023-10-26 00:00:00"
data_start_time=$2
# 数据结束时间(UTC) 参数, 例如:"2023-10-28 00:00:00"
data_end_time=$3
# 每批迁移数据时间段长度(分钟) 参数, 例如:240
slice_interval_minute=$4
timestamp_start=`date --utc --date="$data_start_time" +%s`
timestamp_end=`date --utc --date="$data_end_time" +%s`
# 校验迁移表参数
case $table in
"session_record")
# 迁移session_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"security_event")
# 迁移security_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"monitor_event")
# 迁移monitor_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"transaction_record")
# 迁移transaction_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"voip_record")
# 迁移voip_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"proxy_event")
# 迁移proxy_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"dos_event")
# 迁移dos_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
*)
echo "所迁移表${table}不在范围:session_recordsecurity_eventmonitor_eventtransaction_recordvoip_recordproxy_eventdos_event"
exit 1
;;
esac
# 校验时间参数
if [ -z "$timestamp_start" ]; then
echo "data_start_time fmt err"
exit 1
fi
if [ -z "$timestamp_end" ]; then
echo "data_end_time fmt err"
exit 1
fi
if [ $timestamp_start -ge $timestamp_end ]; then
echo "date range err"
exit 1
fi
if [[ ! "$slice_interval_minute" =~ ^[1-9][0-9]*$ ]]; then
echo "slice_interval_minute参数必须是正确的分钟数"
exit 1
fi
home=$(cd `dirname $0`; pwd)
# 遍历每个节点执行迁移
for ip in `cat iplist.txt`
do
# 后台执行,输出日志
echo "$ip 节点开始执行迁移"
ssh $ip "cd $home && chmod +x ./*.sh && ./start_migrate_local_table_to_2402.sh $table '$data_start_time' '$data_end_time' $slice_interval_minute"
echo ""
done

View File

@@ -0,0 +1,61 @@
#!/bin/bash
home=$(cd `dirname $0`; pwd)
table=$1
if [ -z "$table" ]; then
echo "缺少table参数"
exit 1
fi
ips=($(cat iplist.txt))
ips_size=${#ips[*]}
ip_starts=$( seq 0 $(($ips_size - 1)) )
ip_ends=$( seq 0 $(($ips_size - 1)) )
for ((i=0;i<$ips_size;i++))
do
ip_starts[$i]=0
ip_ends[$i]=0
done
while true ; do
# 遍历每个节点
for ((i=0;i<$ips_size;i++)); do
ip=${ips[$i]}
start=${ip_starts[$i]}
end=${ip_ends[$i]}
if [ $start -eq 0 ]; then
info=$(ssh $ip "cat $home/log_$table.txt | grep migrate_table_start")
if [ -n "$info" ]; then
echo "${ip}迁移开始:${info}"
ip_starts[$i]=1
start=1
fi
fi
if [ $start -eq 1 ] && [ $end -eq 0 ] ; then
info=$(ssh $ip "cat $home/log_$table.txt | grep migrate_table_end")
if [ -n "$info" ]; then
echo "${ip}迁移结束:${info}"
ip_ends[$i]=1
end=1
fi
fi
done
#全部结束
finish_cnt=0
for ((i=0;i<$ips_size;i++)); do
start=${ip_starts[$i]}
end=${ip_ends[$i]}
if [ $start -eq 1 ] && [ $end -eq 1 ] ; then
finish_cnt=$(($finish_cnt+1))
fi
done
if [ $finish_cnt -ge $ips_size ]; then
echo "所有节点迁移结束"
break
fi
sleep 2
done

View File

@@ -0,0 +1,77 @@
#!/bin/bash
# 本脚本逐时间段按最新往前顺序迁移clickhouse数据TSG24.01日志重组后数据迁移
# 迁移表 参数可选值session_recordsecurity_eventmonitor_eventtransaction_recordvoip_recordproxy_eventdos_event
table=$1
# 数据开始时间(UTC) 参数, 例如:"2023-10-26 00:00:00"
data_start_time=$2
# 数据结束时间(UTC) 参数, 例如:"2023-10-28 00:00:00"
data_end_time=$3
# 每批迁移数据时间段长度(分钟) 参数, 例如:240
slice_interval_minute=$4
timestamp_start=`date --utc --date="$data_start_time" +%s`
timestamp_end=`date --utc --date="$data_end_time" +%s`
# 校验迁移表参数
case $table in
"session_record")
# 迁移session_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"security_event")
# 迁移security_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"monitor_event")
# 迁移monitor_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"transaction_record")
# 迁移transaction_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"voip_record")
# 迁移voip_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"proxy_event")
# 迁移proxy_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"dos_event")
# 迁移dos_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
*)
echo "所迁移表${table}不在范围:session_recordsecurity_eventmonitor_eventtransaction_recordvoip_recordproxy_eventdos_event"
exit 1
;;
esac
# 校验时间参数
if [ -z "$timestamp_start" ]; then
echo "data_start_time fmt err"
exit 1
fi
if [ -z "$timestamp_end" ]; then
echo "data_end_time fmt err"
exit 1
fi
if [ $timestamp_start -ge $timestamp_end ]; then
echo "date range err"
exit 1
fi
if [[ ! "$slice_interval_minute" =~ ^[1-9][0-9]*$ ]]; then
echo "slice_interval_minute参数必须是正确的分钟数"
exit 1
fi
# 后台执行,输出日志
nohup ./migrate_local_table_to_2402.sh "$table" "$data_start_time" "$data_end_time" $slice_interval_minute > "log_$table.txt" 2>&1 &
echo "已启动迁移${table}表任务,时间范围[$data_start_time, $data_end_time], 每批迁移段分钟:$slice_interval_minute, 日志输出到:log_$table.txt。请查看日志文件确认每段数据迁移情况"

View File

@@ -0,0 +1,96 @@
set distributed_ddl_task_timeout = 180;
-- 删除源表同步到临时表物化视图, 七个表
drop view if exists tsg_galaxy_v3.session_record_local_2310_to_2401_view on cluster ck_cluster;
drop view if exists tsg_galaxy_v3.security_event_local_2310_to_security_event_local_2401_view on cluster ck_cluster;
drop view if exists tsg_galaxy_v3.security_event_local_2310_to_monitor_event_local_2401_view on cluster ck_cluster;
drop view if exists tsg_galaxy_v3.transaction_record_local_2310_to_2401_view on cluster ck_cluster;
drop view if exists tsg_galaxy_v3.voip_record_local_2310_to_2401_view on cluster ck_cluster;
drop view if exists tsg_galaxy_v3.proxy_event_local_2310_to_2401_view on cluster ck_cluster;
drop view if exists tsg_galaxy_v3.dos_event_local_2310_to_2401_view on cluster ck_cluster;
-- 删除源表同步子表物化视图
drop VIEW IF EXISTS tsg_galaxy_v3.common_client_ip ON CLUSTER ck_cluster;
drop VIEW IF EXISTS tsg_galaxy_v3.common_http_domain ON CLUSTER ck_cluster;
drop VIEW IF EXISTS tsg_galaxy_v3.common_server_ip ON CLUSTER ck_cluster;
drop VIEW IF EXISTS tsg_galaxy_v3.common_server_domain ON CLUSTER ck_cluster;
-- 删除源表子表相关回表
drop table IF EXISTS tsg_galaxy_v3.interim_session_record_local ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_client_ip_local ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_server_domain_local ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_server_ip_local ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_http_domain_local ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.interim_session_record ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_client_ip ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_server_domain ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_server_ip ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.session_record_http_domain ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.interim_session_record ON CLUSTER ck_query;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_client_ip ON CLUSTER ck_query;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_server_domain ON CLUSTER ck_query;
drop table IF EXISTS tsg_galaxy_v3.session_record_common_server_ip ON CLUSTER ck_query;
drop table IF EXISTS tsg_galaxy_v3.session_record_http_domain ON CLUSTER ck_query;
-- 源表rename到历史表
RENAME TABLE tsg_galaxy_v3.session_record_local to tsg_galaxy_v3.session_record_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.security_event_local to tsg_galaxy_v3.security_event_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.transaction_record_local to tsg_galaxy_v3.transaction_record_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.voip_record_local to tsg_galaxy_v3.voip_record_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.proxy_event_local to tsg_galaxy_v3.proxy_event_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.dos_event_local to tsg_galaxy_v3.dos_event_local_old on cluster ck_cluster;
-- 删除源表分布式表
DROP TABLE IF EXISTS tsg_galaxy_v3.session_record ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.session_record ON CLUSTER ck_cluster;
DROP TABLE IF EXISTS tsg_galaxy_v3.security_event ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.security_event ON CLUSTER ck_cluster;
DROP TABLE IF EXISTS tsg_galaxy_v3.transaction_record ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.transaction_record ON CLUSTER ck_cluster;
DROP TABLE IF EXISTS tsg_galaxy_v3.voip_record ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.voip_record ON CLUSTER ck_cluster;
DROP TABLE IF EXISTS tsg_galaxy_v3.proxy_event ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.proxy_event ON CLUSTER ck_cluster;
DROP TABLE IF EXISTS tsg_galaxy_v3.dos_event ON CLUSTER ck_query;
DROP TABLE IF EXISTS tsg_galaxy_v3.dos_event ON CLUSTER ck_cluster;
-- assessment_event不用迁移
drop table IF EXISTS tsg_galaxy_v3.assessment_event on cluster ck_query;
drop table IF EXISTS tsg_galaxy_v3.assessment_event on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.assessment_event_local on cluster ck_cluster;
-- 删除废弃表
drop table IF EXISTS tsg_galaxy_v3.gtpc_record_local on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.gtpc_record on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.gtpc_record on cluster ck_query;
drop table IF EXISTS tsg_galaxy_v3.radius_onff_log_local on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.radius_onff_log on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.radius_onff_log on cluster ck_query;
drop table IF EXISTS tsg_galaxy_v3.radius_record_local on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.radius_record on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.radius_record on cluster ck_query;
drop table IF EXISTS tsg_galaxy_v3.sys_packet_capture_event_local on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.sys_packet_capture_event on cluster ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.sys_packet_capture_event on cluster ck_query;
drop table IF EXISTS tsg_galaxy_v3.active_defence_event ON CLUSTER ck_cluster;
drop table IF EXISTS tsg_galaxy_v3.active_defence_event ON CLUSTER ck_query;
drop table IF EXISTS tsg_galaxy_v3.active_defence_event_local ON CLUSTER ck_cluster;
-- 删除临时表之间物化视图
drop VIEW IF EXISTS tsg_galaxy_v3.security_event_materialized_view_2401 ON CLUSTER ck_cluster;
drop VIEW IF EXISTS tsg_galaxy_v3.monitor_event_materialized_view_2401 ON CLUSTER ck_cluster;
-- 临时表rename到目标表
RENAME TABLE tsg_galaxy_v3.session_record_local_2401 to tsg_galaxy_v3.session_record_local on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.security_event_local_2401 to tsg_galaxy_v3.security_event_local on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.monitor_event_local_2401 to tsg_galaxy_v3.monitor_event_local on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.transaction_record_local_2401 to tsg_galaxy_v3.transaction_record_local on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.voip_record_local_2401 to tsg_galaxy_v3.voip_record_local on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.proxy_event_local_2401 to tsg_galaxy_v3.proxy_event_local on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.dos_event_local_2401 to tsg_galaxy_v3.dos_event_local on cluster ck_cluster;

View File

@@ -0,0 +1,20 @@
SELECT log_id, recv_time, vsys_id, assessment_date, lot_number, file_name, assessment_file, assessment_type, features, `size`, file_checksum_sha
FROM tsg_galaxy_v3.assessment_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT vsys_id, recv_time, log_id, profile_id, start_time, end_time, attack_type, severity, conditions, destination_ip, destination_country, source_ip_list, source_country_list, session_rate, packet_rate, bit_rate
FROM tsg_galaxy_v3.dos_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, shaping_rule_list, proxy_rule_list, statistics_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, fqdn_category_list, ip_protocol, decoded_path, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, ssl_version, ssl_sni, ssl_san, ssl_cn, ssl_handshake_latency_ms, ssl_ja3_hash, ssl_ja3s_hash, ssl_cert_issuer, ssl_cert_subject, ssl_esni_flag, ssl_ech_flag, dtls_cookie, dtls_version, dtls_sni, dtls_san, dtls_cn, dtls_handshake_latency_ms, dtls_ja3_fingerprint, dtls_ja3_hash, dtls_cert_issuer, dtls_cert_subject, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_eml_file, ftp_account, ftp_url, ftp_link_type, quic_version, quic_sni, quic_user_agent, rdp_cookie, rdp_security_protocol, rdp_client_channels, rdp_keyboard_layout, rdp_client_version, rdp_client_name, rdp_client_product_id, rdp_desktop_width, rdp_desktop_height, rdp_requested_color_depth, rdp_certificate_type, rdp_certificate_count, rdp_certificate_permanent, rdp_encryption_level, rdp_encryption_method, ssh_version, ssh_auth_success, ssh_client_version, ssh_server_version, ssh_cipher_alg, ssh_mac_alg, ssh_compression_alg, ssh_kex_alg, ssh_host_key_alg, ssh_host_key, ssh_hassh, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, stratum_cryptocurrency, stratum_mining_pools, stratum_mining_program, stratum_mining_subscribe, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, tunnels, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_v3.monitor_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, shaping_rule_list, proxy_rule_list, statistics_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, fqdn_category_list, ip_protocol, decoded_path, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, doh_url, doh_host, doh_request_line, doh_response_line, doh_cookie, doh_referer, doh_user_agent, doh_content_length, doh_content_type, doh_set_cookie, doh_version, doh_message_id, doh_qr, doh_opcode, doh_aa, doh_tc, doh_rd, doh_ra, doh_rcode, doh_qdcount, doh_ancount, doh_nscount, doh_arcount, doh_qname, doh_qtype, doh_qclass, doh_cname, doh_sub, doh_rr, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, tunnels, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_v3.proxy_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, shaping_rule_list, proxy_rule_list, statistics_rule_list, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, fqdn_category_list, ip_protocol, decoded_path, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, ssl_version, ssl_sni, ssl_san, ssl_cn, ssl_handshake_latency_ms, ssl_ja3_hash, ssl_ja3s_hash, ssl_cert_issuer, ssl_cert_subject, ssl_esni_flag, ssl_ech_flag, dtls_cookie, dtls_version, dtls_sni, dtls_san, dtls_cn, dtls_handshake_latency_ms, dtls_ja3_fingerprint, dtls_ja3_hash, dtls_cert_issuer, dtls_cert_subject, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_eml_file, ftp_account, ftp_url, ftp_link_type, quic_version, quic_sni, quic_user_agent, rdp_cookie, rdp_security_protocol, rdp_client_channels, rdp_keyboard_layout, rdp_client_version, rdp_client_name, rdp_client_product_id, rdp_desktop_width, rdp_desktop_height, rdp_requested_color_depth, rdp_certificate_type, rdp_certificate_count, rdp_certificate_permanent, rdp_encryption_level, rdp_encryption_method, ssh_version, ssh_auth_success, ssh_client_version, ssh_server_version, ssh_cipher_alg, ssh_mac_alg, ssh_compression_alg, ssh_kex_alg, ssh_host_key_alg, ssh_host_key, ssh_hassh, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, stratum_cryptocurrency, stratum_mining_pools, stratum_mining_program, stratum_mining_subscribe, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, tunnels, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_v3.security_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, shaping_rule_list, proxy_rule_list, statistics_rule_list, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, fqdn_category_list, ip_protocol, decoded_path, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, ssl_version, ssl_sni, ssl_san, ssl_cn, ssl_handshake_latency_ms, ssl_ja3_hash, ssl_ja3s_hash, ssl_cert_issuer, ssl_cert_subject, ssl_esni_flag, ssl_ech_flag, dtls_cookie, dtls_version, dtls_sni, dtls_san, dtls_cn, dtls_handshake_latency_ms, dtls_ja3_fingerprint, dtls_ja3_hash, dtls_cert_issuer, dtls_cert_subject, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_eml_file, ftp_account, ftp_url, ftp_link_type, quic_version, quic_sni, quic_user_agent, rdp_cookie, rdp_security_protocol, rdp_client_channels, rdp_keyboard_layout, rdp_client_version, rdp_client_name, rdp_client_product_id, rdp_desktop_width, rdp_desktop_height, rdp_requested_color_depth, rdp_certificate_type, rdp_certificate_count, rdp_certificate_permanent, rdp_encryption_level, rdp_encryption_method, ssh_version, ssh_auth_success, ssh_client_version, ssh_server_version, ssh_cipher_alg, ssh_mac_alg, ssh_compression_alg, ssh_kex_alg, ssh_host_key_alg, ssh_host_key, ssh_hassh, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, stratum_cryptocurrency, stratum_mining_pools, stratum_mining_program, stratum_mining_subscribe, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, tunnels, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, ingestion_time, processing_time, insert_time, address_type, vsys_id, client_ip, client_port, server_ip, server_port, sent_pkts, received_pkts, sent_bytes, received_bytes, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_eml_file, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye
FROM tsg_galaxy_v3.transaction_record where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, shaping_rule_list, proxy_rule_list, statistics_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, fqdn_category_list, ip_protocol, decoded_path, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, tunnels, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_v3.voip_record where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');

View File

@@ -0,0 +1,271 @@
# 说明
* 请按步骤依次执行,执行脚本报错时联系研发处理后再执行之后的步骤。
* 所有ck步骤都需要在query节点执行
* 执行所有sql语句之前需要停止日志留存调度任务确保ck中无分布式ddl语句H执行否则执行的sql会阻塞住影响后续步骤执行
验证sql需要在query节点执行
clickhouse-client -h 127.0.0.1 --port 9001 -m -u default --password ****** --query "select query from system.distributed_ddl_queue where status =0 limit 1"
若返回结果为空则可执行升级步骤,否则需要等待。
# 一、实时同步任务
* 1.创建临时表
```sh
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 01_create_table_2401.sql
```
* 2.创建源表同步到临时表的物化视图
```sh
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 02_create_table_2310_to_2401_view.sql
```
# 二、升级各个数据中心(可选)
* 1.国家中心启动ck入库任务(XX_2401 task)同步临时表创建kafka临时topic(以_2401结尾)启动ck同步到临时表任务
* 2.升级各个分数据中心启动ETL任务发送到国家中心临时topic(以_2401结尾)
# 三、所有分中心升级完毕,临时表切换为目标表,源表切换为历史表
* 1.停止源表ck入库任务
* 2.停止ck入库临时表任务
* 3.重命名旧表和临时表
```sql
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 03_rename_table.sql
```
* 4.执行2401版本初始化建表语句
```
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 04_init_new_table.sql
```
* 5.校验表结构
```
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 05_check.sql
```
无报错信息说明校验通过
* 6.启动目标表ck入库任务(升级完成)
# 四、离线同步历史数据(可选)
在query节点执行以下步骤iplist.txt中为ck所有data节点ip地址。
步骤描述:
* 1.进入migrate_table_2401文件夹,使脚本可执行
```
chmod +x ./*.sh
```
* 2.分发迁移脚本到data节点
```
./01_send_migrate_table_scripts.sh
```
* 2.选择迁移某个表,同步需要时间区间的数据,时间区间:[实时同步任务开始时间向前推n天, 实时同步任务开始时间),时间区间为左闭右开,不包含结束时间点。
```
# 迁移security_event表
./02_start_migrate_table.sh security_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
```
* 3.监控data节点迁移情况所有表迁移完成后确认每个节点同步数据成功/失败批次数,如有失败批次确认是否需要处理
```
# 监控security_event表迁移
./03_monitor_migrate_table.sh security_event
```
* 4.选择下个张需要迁移的表重复2-4步骤。支持选择迁移的表有: security_event, monitor_event, session_record, transaction_record, voip_record, proxy_event, dos_event。
迁移和监控各个表执行命令示例:
```sh
# 迁移security_event表
./02_start_migrate_table.sh security_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控security_event表迁移
./03_monitor_migrate_table.sh security_event
# 迁移monitor_event表
./02_start_migrate_table.sh monitor_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控monitor_event表迁移
./03_monitor_migrate_table.sh monitor_event
# 迁移session_record表
./02_start_migrate_table.sh session_record "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控session_record表迁移
./03_monitor_migrate_table.sh session_record
# 迁移transaction_record表
./02_start_migrate_table.sh transaction_record "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控transaction_record表迁移
./03_monitor_migrate_table.sh transaction_record
# 迁移voip_record表
./02_start_migrate_table.sh voip_record "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控voip_record表迁移
./03_monitor_migrate_table.sh voip_record
# 迁移proxy_event表
./02_start_migrate_table.sh proxy_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控proxy_event表迁移
./03_monitor_migrate_table.sh proxy_event
# 迁移dos_event表
./02_start_migrate_table.sh dos_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控dos_event表迁移
./03_monitor_migrate_table.sh dos_event
```
迁移日志无报错,数据迁移完成。
如果有数据迁移失败批次,查看新老表迁移数据量对应情况(ck每台**data**节点)
```sql
-- security_event
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.security_event_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
and common_action in (16, 96)
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.security_event_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- monitor_event
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.security_event_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
and common_action = 1
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.monitor_event_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- session_record
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.session_record_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.session_record_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- transaction_record
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.transaction_record_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.transaction_record_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- voip_record
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.voip_record_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.voip_record_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- proxy_event
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.proxy_event_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.proxy_event_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- dos_event
SELECT
date_trunc('day', toDateTime(start_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.dos_event_local_old
WHERE start_time>= toUnixTimestamp('2024-01-10 00:00:00') and start_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(start_time))
order by d
;
SELECT
date_trunc('day', toDateTime(start_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_v3.dos_event_local
WHERE start_time >= toUnixTimestamp('2024-01-10 00:00:00') and start_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(start_time))
order by d
;
```

View File

@@ -0,0 +1,15 @@
#!/bin/bash
home=$(cd `dirname $0`; pwd)
# 遍历每个节点执行迁移
for ip in `cat iplist.txt`
do
# 后台执行,输出日志
echo "$ip节点"
ssh $ip "[ ! -d $home ] && mkdir -p $home"
scp -r $home/*local_table_to_2401.sh $ip:$home/
ssh $ip "cd $home && chmod +x ./*.sh"
echo ""
done

View File

@@ -0,0 +1,84 @@
#!/bin/bash
# 本脚本逐时间段按最新往前顺序迁移clickhouse数据TSG24.01日志重组后数据迁移
# 迁移表 参数可选值session_recordsecurity_eventmonitor_eventtransaction_recordvoip_recordproxy_eventdos_event
table=$1
# 数据开始时间(UTC) 参数, 例如:"2023-10-26 00:00:00"
data_start_time=$2
# 数据结束时间(UTC) 参数, 例如:"2023-10-28 00:00:00"
data_end_time=$3
# 每批迁移数据时间段长度(分钟) 参数, 例如:240
slice_interval_minute=$4
timestamp_start=`date --utc --date="$data_start_time" +%s`
timestamp_end=`date --utc --date="$data_end_time" +%s`
# 校验迁移表参数
case $table in
"session_record")
# 迁移session_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"security_event")
# 迁移security_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"monitor_event")
# 迁移monitor_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"transaction_record")
# 迁移transaction_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"voip_record")
# 迁移voip_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"proxy_event")
# 迁移proxy_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"dos_event")
# 迁移dos_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
*)
echo "所迁移表${table}不在范围:session_recordsecurity_eventmonitor_eventtransaction_recordvoip_recordproxy_eventdos_event"
exit 1
;;
esac
# 校验时间参数
if [ -z "$timestamp_start" ]; then
echo "data_start_time fmt err"
exit 1
fi
if [ -z "$timestamp_end" ]; then
echo "data_end_time fmt err"
exit 1
fi
if [ $timestamp_start -ge $timestamp_end ]; then
echo "date range err"
exit 1
fi
if [[ ! "$slice_interval_minute" =~ ^[1-9][0-9]*$ ]]; then
echo "slice_interval_minute参数必须是正确的分钟数"
exit 1
fi
home=$(cd `dirname $0`; pwd)
# 遍历每个节点执行迁移
for ip in `cat iplist.txt`
do
# 后台执行,输出日志
echo "$ip 节点开始执行迁移"
ssh $ip "cd $home && chmod +x ./*.sh && ./start_migrate_local_table_to_2401.sh $table '$data_start_time' '$data_end_time' $slice_interval_minute"
echo ""
done

View File

@@ -0,0 +1,61 @@
#!/bin/bash
home=$(cd `dirname $0`; pwd)
table=$1
if [ -z "$table" ]; then
echo "缺少table参数"
exit 1
fi
ips=($(cat iplist.txt))
ips_size=${#ips[*]}
ip_starts=$( seq 0 $(($ips_size - 1)) )
ip_ends=$( seq 0 $(($ips_size - 1)) )
for ((i=0;i<$ips_size;i++))
do
ip_starts[$i]=0
ip_ends[$i]=0
done
while true ; do
# 遍历每个节点
for ((i=0;i<$ips_size;i++)); do
ip=${ips[$i]}
start=${ip_starts[$i]}
end=${ip_ends[$i]}
if [ $start -eq 0 ]; then
info=$(ssh $ip "cat $home/log_$table.txt | grep migrate_table_start")
if [ -n "$info" ]; then
echo "${ip}迁移开始:${info}"
ip_starts[$i]=1
start=1
fi
fi
if [ $start -eq 1 ] && [ $end -eq 0 ] ; then
info=$(ssh $ip "cat $home/log_$table.txt | grep migrate_table_end")
if [ -n "$info" ]; then
echo "${ip}迁移结束:${info}"
ip_ends[$i]=1
end=1
fi
fi
done
#全部结束
finish_cnt=0
for ((i=0;i<$ips_size;i++)); do
start=${ip_starts[$i]}
end=${ip_ends[$i]}
if [ $start -eq 1 ] && [ $end -eq 1 ] ; then
finish_cnt=$(($finish_cnt+1))
fi
done
if [ $finish_cnt -ge $ips_size ]; then
echo "所有节点迁移结束"
break
fi
sleep 2
done

View File

@@ -0,0 +1,77 @@
#!/bin/bash
# 本脚本逐时间段按最新往前顺序迁移clickhouse数据TSG24.01日志重组后数据迁移
# 迁移表 参数可选值session_recordsecurity_eventmonitor_eventtransaction_recordvoip_recordproxy_eventdos_event
table=$1
# 数据开始时间(UTC) 参数, 例如:"2023-10-26 00:00:00"
data_start_time=$2
# 数据结束时间(UTC) 参数, 例如:"2023-10-28 00:00:00"
data_end_time=$3
# 每批迁移数据时间段长度(分钟) 参数, 例如:240
slice_interval_minute=$4
timestamp_start=`date --utc --date="$data_start_time" +%s`
timestamp_end=`date --utc --date="$data_end_time" +%s`
# 校验迁移表参数
case $table in
"session_record")
# 迁移session_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"security_event")
# 迁移security_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"monitor_event")
# 迁移monitor_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"transaction_record")
# 迁移transaction_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"voip_record")
# 迁移voip_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"proxy_event")
# 迁移proxy_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"dos_event")
# 迁移dos_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
*)
echo "所迁移表${table}不在范围:session_recordsecurity_eventmonitor_eventtransaction_recordvoip_recordproxy_eventdos_event"
exit 1
;;
esac
# 校验时间参数
if [ -z "$timestamp_start" ]; then
echo "data_start_time fmt err"
exit 1
fi
if [ -z "$timestamp_end" ]; then
echo "data_end_time fmt err"
exit 1
fi
if [ $timestamp_start -ge $timestamp_end ]; then
echo "date range err"
exit 1
fi
if [[ ! "$slice_interval_minute" =~ ^[1-9][0-9]*$ ]]; then
echo "slice_interval_minute参数必须是正确的分钟数"
exit 1
fi
# 后台执行,输出日志
nohup ./migrate_local_table_to_2401.sh "$table" "$data_start_time" "$data_end_time" $slice_interval_minute > "log_$table.txt" 2>&1 &
echo "已启动迁移${table}表任务,时间范围[$data_start_time, $data_end_time], 每批迁移段分钟:$slice_interval_minute, 日志输出到:log_$table.txt。请查看日志文件确认每段数据迁移情况"

View File

@@ -0,0 +1,19 @@
set distributed_ddl_task_timeout = 180;
drop table IF EXISTS `system`.query_log_cluster on cluster ck_query;
drop table IF EXISTS `system`.disks_cluster on cluster ck_query;
drop table IF EXISTS `system`.columns_cluster on cluster ck_query;
drop table IF EXISTS `system`.parts_cluster on cluster ck_query;
drop table IF EXISTS `system`.processes_cluster on cluster ck_query;
drop table IF EXISTS `system`.tables_cluster on cluster ck_query;
create table IF NOT EXISTS `system`.tables_cluster ON CLUSTER ck_query as `system`.tables ENGINE =Distributed(ck_all,`system`,tables,rand());
create table IF NOT EXISTS `system`.disks_cluster ON CLUSTER ck_query as `system`.disks ENGINE =Distributed(ck_all,`system`,disks,rand());
create table IF NOT EXISTS `system`.parts_cluster ON CLUSTER ck_query as `system`.parts ENGINE =Distributed(ck_all,`system`,parts,rand());
create table IF NOT EXISTS `system`.query_log_cluster ON CLUSTER ck_query as `system`.query_log ENGINE =Distributed(ck_all,`system`,query_log,rand());
CREATE TABLE IF NOT EXISTS `system`.columns_cluster ON CLUSTER ck_query AS `system`.columns ENGINE=Distributed(ck_all,`system`,columns,rand());
CREATE TABLE IF NOT EXISTS `system`.processes_cluster ON CLUSTER ck_query AS `system`.processes ENGINE=Distributed(ck_all,`system`,processes,rand());
alter table system.query_log on cluster ck_cluster modify TTL event_date + INTERVAL 60 DAY;
alter table system.query_log on cluster ck_query modify TTL event_date + INTERVAL 60 DAY;

View File

@@ -0,0 +1,45 @@
# -*- coding: utf-8 -
import os
newSqlFilePath = "Clickhouse_TSG_建表语句_new.sql" #新表文件路径
oldSqlFilePath = "Clickhouse_TSG_建表语句_old.sql" #旧表文件路径
shellCommand1 = "diff "+newSqlFilePath +" "+oldSqlFilePath#shell命令
shellCommand2 = "diff "+oldSqlFilePath +" "+newSqlFilePath#shell命令左右表位置互换可能有不同的对比结果
shellCommand = [shellCommand1,shellCommand2]
for s in range(0,len(shellCommand)):
print shellCommand[s]+":"
re = os.popen(shellCommand[s]).readlines()
result = []
isRight= False #未出现右箭头
keyWord = ["PRIMARY"] #不能要的关键字
isKeyWord = False #表示当前列表未出现关键字
for i in range(0, len(re)): # 由于原始结果需要转换编码所以循环转为utf8编码并且去除\n换行
res = re[i].strip('\n')
for j in range(0,len(keyWord)):
if str(res).find(keyWord[j]) != -1:
isKeyWord = True # 表示res出现关键字
if isRight == False and str(res).find(">", 0, 1) == 0:
isRight = True
result.append(res)
elif isRight == True and str(res).find(">",0,1) == -1 :
if isKeyWord ==False:
print result
result = []
result.append(res)
isRight = False
isKeyWord = False
else:
result.append(res)
if i == len(re) -1 :
if isKeyWord == False:
print result
print ""

View File

@@ -0,0 +1,8 @@
create table IF NOT EXISTS `system`.tables_cluster ON CLUSTER ck_query as `system`.tables ENGINE =Distributed(ck_all,`system`,tables,rand());
create table IF NOT EXISTS `system`.disks_cluster ON CLUSTER ck_query as `system`.disks ENGINE =Distributed(ck_all,`system`,disks,rand());
create table IF NOT EXISTS `system`.parts_cluster ON CLUSTER ck_query as `system`.parts ENGINE =Distributed(ck_all,`system`,parts,rand());
create table IF NOT EXISTS `system`.query_log_cluster ON CLUSTER ck_query as `system`.query_log ENGINE =Distributed(ck_all,`system`,query_log,rand());
CREATE TABLE IF NOT EXISTS `system`.columns_cluster ON CLUSTER ck_query AS `system`.columns ENGINE=Distributed(ck_all,`system`,columns,rand());
CREATE TABLE IF NOT EXISTS `system`.processes_cluster ON CLUSTER ck_query AS `system`.processes ENGINE=Distributed(ck_all,`system`,processes,rand());
alter table system.query_log on cluster ck_cluster modify TTL event_date + INTERVAL 60 DAY;
alter table system.query_log on cluster ck_query modify TTL event_date + INTERVAL 60 DAY;

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,21 @@
SELECT log_id, recv_time, vsys_id, assessment_date, lot_number, file_name, assessment_file, assessment_type, features, `size`, file_checksum_sha
FROM tsg_galaxy_v3.assessment_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT vsys_id, recv_time, log_id, profile_id, rule_id, start_time, end_time, attack_type, severity, conditions, destination_ip, destination_country, source_ip_list, source_country_list, sessions, session_rate, packets, packet_rate, bytes, bit_rate
FROM tsg_galaxy_v3.dos_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, direction, vsys_id, t_vsys_id, flags, flags_identify_info, c2s_ttl, s2c_ttl, security_rule_list, security_action, monitor_rule_list, shaping_rule_list, proxy_rule_list, statistics_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_country, client_super_administrative_area, client_administrative_area, client_sub_administrative_area, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_country, server_super_administrative_area, server_administrative_area, server_sub_administrative_area, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, app_extra_info, fqdn_category_list, ip_protocol, decoded_path, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, ssl_version, ssl_sni, ssl_san, ssl_cn, ssl_handshake_latency_ms, ssl_ja3_hash, ssl_ja3s_hash, ssl_cert_issuer, ssl_cert_subject, ssl_esni_flag, ssl_ech_flag, dtls_cookie, dtls_version, dtls_sni, dtls_san, dtls_cn, dtls_handshake_latency_ms, dtls_ja3_fingerprint, dtls_ja3_hash, dtls_cert_issuer, dtls_cert_subject, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_starttls_flag, mail_eml_file, ftp_account, ftp_url, ftp_link_type, quic_version, quic_sni, quic_user_agent, rdp_cookie, rdp_security_protocol, rdp_client_channels, rdp_keyboard_layout, rdp_client_version, rdp_client_name, rdp_client_product_id, rdp_desktop_width, rdp_desktop_height, rdp_requested_color_depth, rdp_certificate_type, rdp_certificate_count, rdp_certificate_permanent, rdp_encryption_level, rdp_encryption_method, ssh_version, ssh_auth_success, ssh_client_version, ssh_server_version, ssh_cipher_alg, ssh_mac_alg, ssh_compression_alg, ssh_kex_alg, ssh_host_key_alg, ssh_host_key, ssh_hassh, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, stratum_cryptocurrency, stratum_mining_pools, stratum_mining_program, stratum_mining_subscribe, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, encapsulation, dup_traffic_flag, tunnel_id_list, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_v3.monitor_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, direction, vsys_id, t_vsys_id, flags, flags_identify_info, c2s_ttl, s2c_ttl, security_rule_list, security_action, monitor_rule_list, shaping_rule_list, proxy_rule_list, statistics_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_country, client_super_administrative_area, client_administrative_area, client_sub_administrative_area, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_country, server_super_administrative_area, server_administrative_area, server_sub_administrative_area, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, app_extra_info, fqdn_category_list, ip_protocol, decoded_path, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, doh_url, doh_host, doh_request_line, doh_response_line, doh_cookie, doh_referer, doh_user_agent, doh_content_length, doh_content_type, doh_set_cookie, doh_version, doh_message_id, doh_qr, doh_opcode, doh_aa, doh_tc, doh_rd, doh_ra, doh_rcode, doh_qdcount, doh_ancount, doh_nscount, doh_arcount, doh_qname, doh_qtype, doh_qclass, doh_cname, doh_sub, doh_rr, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, encapsulation, dup_traffic_flag, tunnel_id_list, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_v3.proxy_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, direction, vsys_id, t_vsys_id, flags, flags_identify_info, c2s_ttl, s2c_ttl, security_rule_list, security_action, monitor_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, shaping_rule_list, proxy_rule_list, statistics_rule_list, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_country, client_super_administrative_area, client_administrative_area, client_sub_administrative_area, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_country, server_super_administrative_area, server_administrative_area, server_sub_administrative_area, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, app_extra_info, fqdn_category_list, ip_protocol, decoded_path, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, ssl_version, ssl_sni, ssl_san, ssl_cn, ssl_handshake_latency_ms, ssl_ja3_hash, ssl_ja3s_hash, ssl_cert_issuer, ssl_cert_subject, ssl_esni_flag, ssl_ech_flag, dtls_cookie, dtls_version, dtls_sni, dtls_san, dtls_cn, dtls_handshake_latency_ms, dtls_ja3_fingerprint, dtls_ja3_hash, dtls_cert_issuer, dtls_cert_subject, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_starttls_flag, mail_eml_file, ftp_account, ftp_url, ftp_link_type, quic_version, quic_sni, quic_user_agent, rdp_cookie, rdp_security_protocol, rdp_client_channels, rdp_keyboard_layout, rdp_client_version, rdp_client_name, rdp_client_product_id, rdp_desktop_width, rdp_desktop_height, rdp_requested_color_depth, rdp_certificate_type, rdp_certificate_count, rdp_certificate_permanent, rdp_encryption_level, rdp_encryption_method, ssh_version, ssh_auth_success, ssh_client_version, ssh_server_version, ssh_cipher_alg, ssh_mac_alg, ssh_compression_alg, ssh_kex_alg, ssh_host_key_alg, ssh_host_key, ssh_hassh, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, stratum_cryptocurrency, stratum_mining_pools, stratum_mining_program, stratum_mining_subscribe, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, encapsulation, dup_traffic_flag, tunnel_id_list, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_v3.security_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, direction, vsys_id, t_vsys_id, flags, flags_identify_info, c2s_ttl, s2c_ttl, security_rule_list, security_action, monitor_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, shaping_rule_list, proxy_rule_list, statistics_rule_list, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_country, client_super_administrative_area, client_administrative_area, client_sub_administrative_area, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_country, server_super_administrative_area, server_administrative_area, server_sub_administrative_area, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, app_extra_info, fqdn_category_list, ip_protocol, decoded_path, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, ssl_version, ssl_sni, ssl_san, ssl_cn, ssl_handshake_latency_ms, ssl_ja3_hash, ssl_ja3s_hash, ssl_cert_issuer, ssl_cert_subject, ssl_esni_flag, ssl_ech_flag, dtls_cookie, dtls_version, dtls_sni, dtls_san, dtls_cn, dtls_handshake_latency_ms, dtls_ja3_fingerprint, dtls_ja3_hash, dtls_cert_issuer, dtls_cert_subject, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_starttls_flag, mail_eml_file, ftp_account, ftp_url, ftp_link_type, quic_version, quic_sni, quic_user_agent, rdp_cookie, rdp_security_protocol, rdp_client_channels, rdp_keyboard_layout, rdp_client_version, rdp_client_name, rdp_client_product_id, rdp_desktop_width, rdp_desktop_height, rdp_requested_color_depth, rdp_certificate_type, rdp_certificate_count, rdp_certificate_permanent, rdp_encryption_level, rdp_encryption_method, ssh_version, ssh_auth_success, ssh_client_version, ssh_server_version, ssh_cipher_alg, ssh_mac_alg, ssh_compression_alg, ssh_kex_alg, ssh_host_key_alg, ssh_host_key, ssh_hassh, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, stratum_cryptocurrency, stratum_mining_pools, stratum_mining_program, stratum_mining_subscribe, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, encapsulation, dup_traffic_flag, tunnel_id_list, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, ingestion_time, processing_time, insert_time, address_type, vsys_id, client_ip, client_port, server_ip, server_port, sent_pkts, received_pkts, sent_bytes, received_bytes, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_starttls_flag, mail_eml_file, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye
FROM tsg_galaxy_v3.transaction_record where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, direction, vsys_id, t_vsys_id, flags, flags_identify_info, client_ip, client_port, client_os_desc, client_geolocation, client_country, client_super_administrative_area, client_administrative_area, client_sub_administrative_area, client_asn, server_ip, server_port, server_os_desc, server_geolocation, server_country, server_super_administrative_area, server_administrative_area, server_sub_administrative_area, server_asn, ip_protocol, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, sent_pkts, received_pkts, sent_bytes, received_bytes
FROM tsg_galaxy_v3.voip_record where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT log_id, recv_time, vsys_id, timestamp_us, job_id, sled_ip, device_group, traffic_link_id, source_ip, source_port, destination_ip, destination_port, packet, packet_length, measurements
FROM tsg_galaxy_v3.datapath_telemetry_record where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
#!/bin/bash
sql_file=$1 # sql文件路径
operation=$2 # 1是批量查询2是单条依次查询
startTime="'2024-01-28 15:11:32'"
endTime="'2024-01-29 15:11:32'"
query_batch=1 # 批量查询同时查询的数量
host=192.168.44.12
port=9001
user=default
password=galaxy2019
query_count=$(wc -l < "$sql_file")
if [ $operation -eq 1 ];then
start_time=$(date +%s.%N)
cat $sql_file | sed "s/start_time/$startTime/g" | sed "s/end_time/$endTime/g" | awk -F ';' '{print $2}' | clickhouse-benchmark -h $host -p $port --user=$user --password=$password -i $query_count -d 0 -c $query_batch
end_time=$(date +%s.%N)
total_time=$(echo $(printf "%.3f" "$(echo "scale=3; $end_time - $start_time" | bc)"))
echo "Elapsed Time: $total_time seconds"
echo "Avg Elapsed Time: $(echo $(printf "%.3f" "$(echo "scale=3; $total_time / $query_count" | bc)")) seconds"
exit 0
else
total_time=0
set -f
while IFS= read -r line
do
query=$(echo $line | sed "s/start_time/$startTime/g" | sed "s/end_time/$endTime/g")
query_name=$(echo $query | awk -F ';' '{print $1}')
sql=$(echo $query | awk -F ';' '{print $2}')
query_time=$(clickhouse-client --host=$host --port=$port --user=$user --password=$password -t --query="$sql" 2>&1 >/dev/null)
echo "Query: $query_name"
echo "Elapsed Time: $query_time seconds"
total_time=$(echo "$total_time + $query_time" | bc)
done < $sql_file
echo "Total Elapsed Time: $total_time seconds"
echo "Avg Elapsed Time: $(echo $(printf "%.3f" "$(echo "scale=3; $total_time / $query_count" | bc)")) seconds"
exit 0
fi

View File

@@ -0,0 +1,66 @@
Q01.All Fields sub Query (default) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) LIMIT 30;
Q02.All Fields sub Query order by Time desc ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) ORDER BY recv_time DESC LIMIT 30 ;
Q03.All Fields sub Query order by Time asc ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) ORDER BY recv_time ASC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) ORDER BY recv_time ASC LIMIT 30 ;
Q04.All Fields sub Query by Filter(log_id=434228307888582660) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND log_id = 434228307888582660 ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND log_id = 434228307888582660 ORDER BY recv_time DESC LIMIT 30 ;
Q05.All Fields sub Query by Filter(client_port=52607) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND client_port = 52607 ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND client_port = 52607 ORDER BY recv_time DESC LIMIT 30 ;
Q06.All Fields sub Query by Filter(server_port=443) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_port = 443 ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_port = 443 ORDER BY recv_time DESC LIMIT 30 ;
Q07.All Fields sub Query by Filter(sent_pkts>5) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND sent_pkts > 5 ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND sent_pkts > 5 ORDER BY recv_time DESC LIMIT 30 ;
Q08.All Fields sub Query by Filter(received_pkts>5) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND received_pkts > 5 ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND received_pkts > 5 ORDER BY recv_time DESC LIMIT 30 ;
Q09.All Fields sub Query by Filter(sent_bytes>100) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND sent_bytes > 100 ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND sent_bytes > 100 ORDER BY recv_time DESC LIMIT 30 ;
Q10.All Fields sub Query by Filter(received_bytes<200) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND received_bytes < 200 ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND received_bytes < 200 ORDER BY recv_time DESC LIMIT 30 ;
Q11.All Fields sub Query by Filter(decoded_as='DNS');SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND decoded_as = 'DNS' ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND decoded_as = 'DNS' ORDER BY recv_time DESC LIMIT 30 ;
Q12.All Fields sub Query by Filter(tcp_handshake_latency_ms>200) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND tcp_handshake_latency_ms > 200 ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND tcp_handshake_latency_ms > 200 ORDER BY recv_time DESC LIMIT 30 ;
Q13.All Fields sub Query by Filter(duration_ms>10000);SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND duration_ms > 10000 ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND duration_ms > 10000 ORDER BY recv_time DESC LIMIT 30 ;
Q14.All Fields sub Query by Filter(session_id=434228307888582660);SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND session_id = 434228307888582660 ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND session_id = 434228307888582660 ORDER BY recv_time DESC LIMIT 30 ;
Q15.All Fields sub Query by Filter(tcp_client_isn=2857077935);SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND tcp_client_isn = 2857077935 ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND tcp_client_isn = 2857077935 ORDER BY recv_time DESC LIMIT 30 ;
Q16.All Fields sub Query by Filter(tcp_server_isn=0);SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND tcp_server_isn = 0 ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND tcp_server_isn = 0 ORDER BY recv_time DESC LIMIT 30 ;
Q17.All Fields sub Query by Filter(mail_account='abc@xx.com');SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND mail_account = 'abc@xx.com' ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND mail_account = 'abc@xx.com' ORDER BY recv_time DESC LIMIT 30 ;
Q18.All Fields sub Query by Filter(mail_subject='test') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND mail_subject = 'test' ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND mail_subject = 'test' ORDER BY recv_time DESC LIMIT 30 ;
Q19.All Fields sub Query by Filter(server_domain='qq.com') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_domain = 'qq.com' ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_domain = 'qq.com' ORDER BY recv_time DESC LIMIT 30 ;
Q20.All Fields sub Query by Filter(dns_qname='qbwup.imtt.qq.com');SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND dns_qname = 'qbwup.imtt.qq.com' ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND dns_qname = 'qbwup.imtt.qq.com' ORDER BY recv_time DESC LIMIT 30 ;
Q21.All Fields sub Query by Filter(ssl_sni='note.youdao.com');SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND ssl_sni = 'note.youdao.com' ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND ssl_sni = 'note.youdao.com' ORDER BY recv_time DESC LIMIT 30 ;
Q22.All Fields sub Query by Filter(ssl_handshake_latency_ms>100) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND ssl_handshake_latency_ms > 100 ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND ssl_handshake_latency_ms > 100 ORDER BY recv_time DESC LIMIT 30 ;
Q23.All Fields sub Query by Filter(ssl_ja3_hash='a0e9f5d64349fb13191bc781f81f42e1') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND ssl_ja3_hash = 'a0e9f5d64349fb13191bc781f81f42e1' ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND ssl_ja3_hash = 'a0e9f5d64349fb13191bc781f81f42e1' ORDER BY recv_time DESC LIMIT 30 ;
Q24.All Fields sub Query by Filter(server_ip='111.10.53.14' and server_port=443) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_ip = '111.10.53.14' AND server_port = 443 ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_ip = '111.10.53.14' AND server_port = 443 ORDER BY recv_time DESC LIMIT 30 ;
Q25.All Fields sub Query by Filter(mail_account like 'abc@%');SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND mail_account LIKE 'abc@%' ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND mail_account LIKE 'abc@%' ORDER BY recv_time DESC LIMIT 30 ;
Q26.All Fields sub Query by Filter(ssl_sni like '%youdao.com');SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND ssl_sni LIKE '%youdao.com' ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND ssl_sni LIKE '%youdao.com' ORDER BY recv_time DESC LIMIT 30 ;
Q27.All Fields sub Query by Filter(server_domain like '%baidu.com%') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_domain LIKE '%baidu.com%' ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_domain LIKE '%baidu.com%' ORDER BY recv_time DESC LIMIT 30 ;
Q28.All Fields sub Query by Filter(server_port not in (80,443)) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time IN (SELECT recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_port NOT IN (80, 443) ORDER BY recv_time DESC LIMIT 30) AND recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_port NOT IN (80, 443) ORDER BY recv_time DESC LIMIT 30 ;
Q29.ip_protocol top10 ;select ip_protocol ,count() from tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by ip_protocol order by count() desc limit 10 ;
Q30.decoded_as top10 ;select decoded_as ,count() from tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by decoded_as order by count() desc limit 10 ;
Q31.client_ip top10 ;select client_ip ,count() from tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by client_ip order by count() desc limit 10 ;
Q32.client_port top10 ;select client_port ,count() from tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by client_port order by count() desc limit 10 ;
Q33.subscriber_id top10 ;select subscriber_id ,count() from tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by subscriber_id order by count() desc limit 10 ;
Q34.server_ip top10 ;select server_ip ,count() from tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by server_ip order by count() desc limit 10 ;
Q35.server_port top10 ;select server_port ,count() from tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by server_port order by count() desc limit 10 ;
Q36.app top10 ;select app ,count() from tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by app order by count() desc limit 10 ;
Q37.sent_pkts top10 ;select sent_pkts ,count() from tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by sent_pkts order by count() desc limit 10 ;
Q38.received_pkts top10 ;select received_pkts ,count() from tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by received_pkts order by count() desc limit 10 ;
Q39.http_url top10 ;select http_url ,count() from tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by http_url order by count() desc limit 10 ;
Q40.http_host top10 ;select http_host ,count() from tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by http_host order by count() desc limit 10 ;
Q41.server_domain top10 ;select server_domain ,count() from tsg_galaxy_v3.session_record where recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by server_domain order by count() desc limit 10 ;
Q42.ip_protocol top10 by Filter(client_ip='36.189.226.21'); select ip_protocol ,count() from tsg_galaxy_v3.session_record where client_ip='36.189.226.21' and recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by ip_protocol order by count() desc limit 10 ;
Q43.client_ip top10 by Filter(server_ip='8.8.8.8');select client_ip ,count() from tsg_galaxy_v3.session_record where server_ip='8.8.8.8' and recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by client_ip order by count() desc limit 10 ;
Q44.client_port top10 by Filter(server_port=443);select client_port ,count() from tsg_galaxy_v3.session_record where server_port=443 and recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by client_port order by count() desc limit 10 ;
Q45.subscriber_id top10 by Filter(sent_bytes > 100);select subscriber_id ,count() from tsg_galaxy_v3.session_record where sent_bytes > 100 and recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by subscriber_id order by count() desc limit 10 ;
Q46.server_port top10 by Filter(received_bytes<200);select server_port ,count() from tsg_galaxy_v3.session_record where received_bytes<200 and recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by server_port order by count() desc limit 10 ;
Q47.app top10 by Filter(server_domain like '%baidu.com%');select app ,count() from tsg_galaxy_v3.session_record where server_domain like '%baidu.com%' and recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) and server_domain like '%baidu.com%' group by app order by count() desc limit 10 ;
Q48.sent_pkts top10 by Filter(ssl_sni='note.youdao.com');select sent_pkts ,count() from tsg_galaxy_v3.session_record where ssl_sni='note.youdao.com' and recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by sent_pkts order by count() desc limit 10 ;
Q49.received_pkts top10 by Filter(server_ip='111.10.53.14' and server_port=443);select received_pkts ,count() from tsg_galaxy_v3.session_record where server_ip='111.10.53.14' and server_port=443 and recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by received_pkts order by count() desc limit 10 ;
Q50.http_url top10 by Filter(sent_bytes>100);select http_url ,count() from tsg_galaxy_v3.session_record where sent_bytes>100 and recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by http_url order by count() desc limit 10 ;
Q51.http_host top10 by Filter(server_ip='8.8.8.8');select http_host ,count() from tsg_galaxy_v3.session_record where server_ip='8.8.8.8' and recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by http_host order by count() desc limit 10 ;
Q52.server_domain top10 by Filter(decoded_as='HTTP');select server_domain ,count() from tsg_galaxy_v3.session_record where decoded_as='HTTP' and recv_time >= toUnixTimestamp(start_time) and recv_time < toUnixTimestamp(end_time) group by server_domain order by count() desc limit 10 ;
Q53.Bandwidth Trend (Time Grain 60 second) nofilter ;SELECT toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(recv_time)), INTERVAL 60 SECOND))))) AS stat_time, decoded_as AS type, sum(sent_bytes + received_bytes) AS bytes, sum(sent_pkts + received_pkts) AS packets FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) GROUP BY toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(recv_time)), INTERVAL 60 SECOND))))), decoded_as LIMIT 100000 ;
Q54.Bandwidth Trend (Time Grain 60 second) by Filter(client_ip='36.189.226.21') ;SELECT toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(recv_time)), INTERVAL 60 SECOND))))) AS stat_time, decoded_as AS type, sum(sent_bytes + received_bytes) AS bytes, sum(sent_pkts + received_pkts) AS packets FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND client_ip='36.189.226.21' GROUP BY toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(recv_time)), INTERVAL 60 SECOND))))), decoded_as LIMIT 100000 ;
Q55.Bandwidth Trend (Time Grain 60 second) by Filter(server_ip='8.8.8.8') ;SELECT toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(recv_time)), INTERVAL 60 SECOND))))) AS stat_time, decoded_as AS type, sum(sent_bytes + received_bytes) AS bytes, sum(sent_pkts + received_pkts) AS packets FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_ip='8.8.8.8' GROUP BY toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(recv_time)), INTERVAL 60 SECOND))))), decoded_as LIMIT 100000 ;
Q56.Bandwidth Trend (Time Grain 60 second) by Filter(server_domain='microsoft.com') ;SELECT toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(recv_time)), INTERVAL 60 SECOND))))) AS stat_time, decoded_as AS type, sum(sent_bytes + received_bytes) AS bytes, sum(sent_pkts + received_pkts) AS packets FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_domain='microsoft.com' GROUP BY toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(recv_time)), INTERVAL 60 SECOND))))), decoded_as LIMIT 100000 ;
Q57.Bandwidth Trend (Time Grain 60 second) by Filter(server_ip='111.10.53.14' and server_port=443);SELECT toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(recv_time)), INTERVAL 60 SECOND))))) AS stat_time, decoded_as AS type, sum(sent_bytes + received_bytes) AS bytes, sum(sent_pkts + received_pkts) AS packets FROM tsg_galaxy_v3.session_record AS session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_ip='111.10.53.14' and server_port=443 GROUP BY toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(recv_time)), INTERVAL 60 SECOND))))), decoded_as LIMIT 100000 ;
Q58.Metrics Query by Filter(decoded_as='HTTP') ;SELECT ROUND(AVG(http_response_latency_ms)) AS http_response_latency FROM tsg_galaxy_v3.session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND decoded_as = 'HTTP' ;
Q59.Metrics Query by Filter(app = 'qq_r2');SELECT ROUND(SUM(tcp_c2s_rtx_pkts + tcp_s2c_rtx_pkts)/SUM(sent_pkts + received_pkts),4) AS avg_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND app = 'qq_r2' ;
Q60.Metrics Query by Filter(server_domain='qq.com') ;SELECT ROUND(SUM(tcp_c2s_rtx_pkts + tcp_s2c_rtx_pkts)/SUM(sent_pkts + received_pkts),4) AS avg_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_domain = 'qq.com' ;
Q61.Metrics Query by Filter(client_ip='116.178.223.59');SELECT ROUND(SUM(tcp_c2s_rtx_pkts + tcp_s2c_rtx_pkts)/SUM(sent_pkts + received_pkts),4) AS avg_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND client_ip = '116.178.223.59' ;
Q62.Metrics Query by Filter(server_ip='8.8.8.8');SELECT ROUND(SUM(tcp_c2s_rtx_pkts + tcp_s2c_rtx_pkts)/SUM(sent_pkts + received_pkts),4) AS avg_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_ip = '8.8.8.8' ;
Q63.Metrics Query by Filter(app = 'qq_r2') group by recv_time;SELECT ROUND(SUM(tcp_c2s_rtx_pkts + tcp_s2c_rtx_pkts)/SUM(sent_pkts + received_pkts),4) as max_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND app = 'qq_r2' GROUP by recv_time order BY max_pkt_retrans_percent desc limit 1 ;
Q64.Metrics Query by Filter(server_domain='qq.com') group by recv_time;SELECT ROUND(SUM(tcp_c2s_rtx_pkts + tcp_s2c_rtx_pkts)/SUM(sent_pkts + received_pkts),4) as max_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_domain = 'qq.com' GROUP by recv_time order BY max_pkt_retrans_percent desc limit 1 ;
Q65.Metrics Query by Filter(client_ip='116.178.223.59') group by recv_time;SELECT ROUND(SUM(tcp_c2s_rtx_pkts + tcp_s2c_rtx_pkts)/SUM(sent_pkts + received_pkts),4) as max_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND client_ip = '116.178.223.59' GROUP by recv_time order BY max_pkt_retrans_percent desc limit 1 ;
Q66.Metrics Query by Filter(server_ip='8.8.8.8') group by recv_time;SELECT ROUND(SUM(tcp_c2s_rtx_pkts + tcp_s2c_rtx_pkts)/SUM(sent_pkts + received_pkts),4) as max_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE recv_time >= toUnixTimestamp(start_time) AND recv_time < toUnixTimestamp(end_time) AND server_ip = '8.8.8.8' GROUP by recv_time order BY max_pkt_retrans_percent desc limit 1 ;

View File

@@ -0,0 +1,74 @@
Q01.All Fields sub Query (default) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) LIMIT 30 ;
Q02.All Fields sub Query order by Time desc ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) ORDER BY common_recv_time DESC LIMIT 30 ;
Q03.All Fields sub Query order by Time asc ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) ORDER BY common_recv_time ASC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) ORDER BY common_recv_time ASC LIMIT 30 ;
Q04.All Fields sub Query by Filter(common_log_id=434228307888582660) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_log_id = 434228307888582660 ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_log_id = 434228307888582660 ORDER BY common_recv_time DESC LIMIT 30 ;
Q05.All Fields sub Query by Filter(common_internal_ip='223.116.37.192') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_internal_ip = '223.116.37.192' ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_internal_ip = '223.116.37.192' ORDER BY common_recv_time DESC LIMIT 30 ;
Q06.All Fields sub Query by Filter(common_external_ip='111.10.53.14') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_external_ip = '111.10.53.14' ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_external_ip = '111.10.53.14' ORDER BY common_recv_time DESC LIMIT 30 ;
Q07.All Fields sub Query by Filter(common_client_port=52607) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_client_port = 52607 ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_client_port = 52607 ORDER BY common_recv_time DESC LIMIT 30 ;
Q08.All Fields sub Query by Filter(common_server_port=443) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_server_port = 443 ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_server_port = 443 ORDER BY common_recv_time DESC LIMIT 30 ;
Q09.All Fields sub Query by Filter(common_c2s_pkt_num>5) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_c2s_pkt_num > 5 ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_c2s_pkt_num > 5 ORDER BY common_recv_time DESC LIMIT 30 ;
Q10.All Fields sub Query by Filter(common_s2c_pkt_num>5) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_s2c_pkt_num > 5 ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_s2c_pkt_num > 5 ORDER BY common_recv_time DESC LIMIT 30 ;
Q11.All Fields sub Query by Filter(common_c2s_byte_num>100) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_c2s_byte_num > 100 ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_c2s_byte_num > 100 ORDER BY common_recv_time DESC LIMIT 30 ;
Q12.All Fields sub Query by Filter(common_s2c_byte_num<200) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_s2c_byte_num < 200 ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_s2c_byte_num < 200 ORDER BY common_recv_time DESC LIMIT 30 ;
Q13.All Fields sub Query by Filter(common_schema_type='DNS') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_schema_type = 'DNS' ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_schema_type = 'DNS' ORDER BY common_recv_time DESC LIMIT 30 ;
Q14.All Fields sub Query by Filter(common_establish_latency_ms>200) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_establish_latency_ms > 200 ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_establish_latency_ms > 200 ORDER BY common_recv_time DESC LIMIT 30 ;
Q15.All Fields sub Query by Filter(common_con_duration_ms>10000) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_con_duration_ms > 10000 ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_con_duration_ms > 10000 ORDER BY common_recv_time DESC LIMIT 30 ;
Q16.All Fields sub Query by Filter(common_stream_trace_id=434228307888582660) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_stream_trace_id = 434228307888582660 ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_stream_trace_id = 434228307888582660 ORDER BY common_recv_time DESC LIMIT 30 ;
Q17.All Fields sub Query by Filter(common_tcp_client_isn=2857077935) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_tcp_client_isn = 2857077935 ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_tcp_client_isn = 2857077935 ORDER BY common_recv_time DESC LIMIT 30 ;
Q18.All Fields sub Query by Filter(common_tcp_server_isn=0) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_tcp_server_isn = 0 ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_tcp_server_isn = 0 ORDER BY common_recv_time DESC LIMIT 30 ;
Q19.All Fields sub Query by Filter(mail_account='abc@xx.com') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND mail_account = 'abc@xx.com' ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND mail_account = 'abc@xx.com' ORDER BY common_recv_time DESC LIMIT 30 ;
Q20.All Fields sub Query by Filter(mail_subject='test') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND mail_subject = 'test' ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND mail_subject = 'test' ORDER BY common_recv_time DESC LIMIT 30 ;
Q21.All Fields sub Query by Filter(http_domain='qq.com') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND http_domain = 'qq.com' ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND http_domain = 'qq.com' ORDER BY common_recv_time DESC LIMIT 30 ;
Q22.All Fields sub Query by Filter(dns_qname='qbwup.imtt.qq.com') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND dns_qname = 'qbwup.imtt.qq.com' ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND dns_qname = 'qbwup.imtt.qq.com' ORDER BY common_recv_time DESC LIMIT 30 ;
Q23.All Fields sub Query by Filter(ssl_sni='note.youdao.com') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND ssl_sni = 'note.youdao.com' ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND ssl_sni = 'note.youdao.com' ORDER BY common_recv_time DESC LIMIT 30 ;
Q24.All Fields sub Query by Filter(ssl_con_latency_ms>100) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND ssl_con_latency_ms > 100 ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND ssl_con_latency_ms > 100 ORDER BY common_recv_time DESC LIMIT 30 ;
Q25.All Fields sub Query by Filter(ssl_ja3_hash='9b02ebd3a43b62d825e1ac605b621dc8') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND ssl_ja3_hash = '9b02ebd3a43b62d825e1ac605b621dc8' ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND ssl_ja3_hash = '9b02ebd3a43b62d825e1ac605b621dc8' ORDER BY common_recv_time DESC LIMIT 30 ;
Q26.All Fields sub Query by Filter(common_server_ip='111.10.53.14' and common_server_port=443) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_server_ip = '111.10.53.14' AND common_server_port = 443 ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_server_ip = '111.10.53.14' AND common_server_port = 443 ORDER BY common_recv_time DESC LIMIT 30 ;
Q27.All Fields sub Query by Filter(mail_account like 'abc@%') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND mail_account LIKE 'abc@%' ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND mail_account LIKE 'abc@%' ORDER BY common_recv_time DESC LIMIT 30 ;
Q28.All Fields sub Query by Filter(ssl_sni like '%youdao.com') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND ssl_sni LIKE '%youdao.com' ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND ssl_sni LIKE '%youdao.com' ORDER BY common_recv_time DESC LIMIT 30 ;
Q29.All Fields sub Query by Filter(http_domain like '%baidu.com%') ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND http_domain LIKE '%baidu.com%' ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND http_domain LIKE '%baidu.com%' ORDER BY common_recv_time DESC LIMIT 30 ;
Q30.All Fields sub Query by Filter(common_server_port not in (80,443)) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_server_port NOT IN (80, 443) ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_server_port NOT IN (80, 443) ORDER BY common_recv_time DESC LIMIT 30 ;
Q31.All Fields sub Query (sub query by time) ;SELECT * FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE toDateTime(common_recv_time) IN (SELECT toDateTime(common_recv_time) FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) ORDER BY common_recv_time DESC LIMIT 30) AND toDateTime(common_recv_time) IN (SELECT toDateTime(common_recv_time) FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time IN (SELECT common_recv_time FROM tsg_galaxy_v3.session_record AS session_record WHERE toDateTime(common_recv_time) IN (SELECT toDateTime(common_recv_time) FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) ORDER BY common_recv_time DESC LIMIT 30) AND common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) ORDER BY common_recv_time DESC LIMIT 30;
Q32.common_l4_protocol top10 ;select common_l4_protocol ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_l4_protocol order by count() desc limit 10 ;
Q33.common_schema_type top10 ;select common_schema_type ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_schema_type order by count() desc limit 10 ;
Q34.common_client_ip top10 ;select common_client_ip ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_client_ip order by count() desc limit 10 ;
Q35.common_client_port top10 ;select common_client_port ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_client_port order by count() desc limit 10 ;
Q36.common_subscriber_id top10 ;select common_subscriber_id ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_subscriber_id order by count() desc limit 10 ;
Q37.common_server_ip top10 ;select common_server_ip ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_server_ip order by count() desc limit 10 ;
Q38.common_server_port top10 ;select common_server_port ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_server_port order by count() desc limit 10 ;
Q39.common_app_id top10 ;select common_app_id ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_app_id order by count() desc limit 10 ;
Q40.common_app_label top10 ;select common_app_label ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_app_label order by count() desc limit 10 ;
Q41.common_l7_protocol top10 ;select common_l7_protocol ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_l7_protocol order by count() desc limit 10 ;
Q42.common_c2s_pkt_num top10 ;select common_c2s_pkt_num ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_c2s_pkt_num order by count() desc limit 10 ;
Q43.common_s2c_pkt_num top10 ;select common_s2c_pkt_num ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_s2c_pkt_num order by count() desc limit 10 ;
Q44.http_url top10 ;select http_url ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by http_url order by count() desc limit 10 ;
Q45.http_host top10 ;select http_host ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by http_host order by count() desc limit 10 ;
Q46.http_domain top10 ;select http_domain ,count() from tsg_galaxy_v3.session_record where common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by http_domain order by count() desc limit 10 ;
Q47.common_l4_protocol top10 by Filter(common_client_ip='36.189.226.21') ;select common_l4_protocol ,count() from tsg_galaxy_v3.session_record where common_client_ip='36.189.226.21' and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_l4_protocol order by count() desc limit 10 ;
Q48.common_schema_type top10 by Filter(common_internal_ip='223.116.37.192') ;select common_schema_type ,count() from tsg_galaxy_v3.session_record where common_internal_ip='223.116.37.192' and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_schema_type order by count() desc limit 10 ;
Q49.common_client_ip top10 by Filter(common_server_ip='8.8.8.8') ;select common_client_ip ,count() from tsg_galaxy_v3.session_record where common_server_ip='8.8.8.8' and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_client_ip order by count() desc limit 10 ;
Q50.common_client_port top10 by Filter(common_server_port=443) ;select common_client_port ,count() from tsg_galaxy_v3.session_record where common_server_port=443 and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_client_port order by count() desc limit 10 ;
Q51.common_subscriber_id top10 by Filter(common_c2s_byte_num > 100) ;select common_subscriber_id ,count() from tsg_galaxy_v3.session_record where common_c2s_byte_num > 100 and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_subscriber_id order by count() desc limit 10 ;
Q52.common_server_ip top10 by Filter(common_external_ip='111.10.53.14') ;select common_server_ip ,count() from tsg_galaxy_v3.session_record where common_external_ip='111.10.53.14' and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_server_ip order by count() desc limit 10 ;
Q53.common_server_port top10 by Filter(common_s2c_byte_num<200) ;select common_server_port ,count() from tsg_galaxy_v3.session_record where common_s2c_byte_num<200 and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_server_port order by count() desc limit 10 ;
Q54.common_app_id top10 by Filter(http_domain like '%baidu.com%') ;select common_app_id ,count() from tsg_galaxy_v3.session_record where http_domain like '%baidu.com%' and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) and http_domain like '%baidu.com%' group by common_app_id order by count() desc limit 10 ;
Q55.common_app_label top10 by Filter(common_server_port not in (80,443)) ;select common_app_label ,count() from tsg_galaxy_v3.session_record where common_server_port not in (80,443) and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_app_label order by count() desc limit 10 ;
Q56.common_l7_protocol top10 by Filter(http_domain not like '%microsoft.com') ;select common_l7_protocol ,count() from tsg_galaxy_v3.session_record where http_domain not like '%microsoft.com' and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_l7_protocol order by count() desc limit 10 ;
Q57.common_c2s_pkt_num top10 by Filter(ssl_sni='note.youdao.com') ;select common_c2s_pkt_num ,count() from tsg_galaxy_v3.session_record where ssl_sni='note.youdao.com' and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_c2s_pkt_num order by count() desc limit 10 ;
Q58.common_s2c_pkt_num top10 by Filter(common_server_ip='111.10.53.14' and common_server_port=443) ;select common_s2c_pkt_num ,count() from tsg_galaxy_v3.session_record where common_server_ip='111.10.53.14' and common_server_port=443 and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by common_s2c_pkt_num order by count() desc limit 10 ;
Q59.http_url top10 by Filter(common_c2s_byte_num>100) ;select http_url ,count() from tsg_galaxy_v3.session_record where common_c2s_byte_num>100 and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by http_url order by count() desc limit 10 ;
Q60.http_host top10 by Filter(common_server_ip='8.8.8.8') ;select http_host ,count() from tsg_galaxy_v3.session_record where common_server_ip='8.8.8.8' and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by http_host order by count() desc limit 10 ;
Q61.http_domain top10 by Filter(common_schema_type='HTTP') ;select http_domain ,count() from tsg_galaxy_v3.session_record where common_schema_type='HTTP' and common_recv_time >= toUnixTimestamp(start_time) and common_recv_time < toUnixTimestamp(end_time) group by http_domain order by count() desc limit 10 ;
Q62.Bandwidth Trend (Time Grain 60 second) nofilter ;SELECT toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(common_recv_time)), INTERVAL 60 SECOND))))) AS stat_time, common_schema_type AS type, sum(common_sessions) AS sessions, sum(common_c2s_byte_num + common_s2c_byte_num) AS bytes, sum(common_c2s_pkt_num + common_s2c_pkt_num) AS packets FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) GROUP BY toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(common_recv_time)), INTERVAL 60 SECOND))))), common_schema_type LIMIT 100000 ;
Q63.Bandwidth Trend (Time Grain 60 second) by Filter(common_client_ip='36.189.226.21') ;SELECT toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(common_recv_time)), INTERVAL 60 SECOND))))) AS stat_time, common_schema_type AS type, sum(common_sessions) AS sessions, sum(common_c2s_byte_num + common_s2c_byte_num) AS bytes, sum(common_c2s_pkt_num + common_s2c_pkt_num) AS packets FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_client_ip='36.189.226.21' GROUP BY toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(common_recv_time)), INTERVAL 60 SECOND))))), common_schema_type LIMIT 100000 ;
Q64.Bandwidth Trend (Time Grain 60 second) by Filter(common_server_ip='8.8.8.8') ;SELECT toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(common_recv_time)), INTERVAL 60 SECOND))))) AS stat_time, common_schema_type AS type, sum(common_sessions) AS sessions, sum(common_c2s_byte_num + common_s2c_byte_num) AS bytes, sum(common_c2s_pkt_num + common_s2c_pkt_num) AS packets FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_server_ip='8.8.8.8' GROUP BY toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(common_recv_time)), INTERVAL 60 SECOND))))), common_schema_type LIMIT 100000 ;
Q65.Bandwidth Trend (Time Grain 60 second) by Filter(http_domain='microsoft.com') ;SELECT toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(common_recv_time)), INTERVAL 60 SECOND))))) AS stat_time, common_schema_type AS type, sum(common_sessions) AS sessions, sum(common_c2s_byte_num + common_s2c_byte_num) AS bytes, sum(common_c2s_pkt_num + common_s2c_pkt_num) AS packets FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND http_domain='microsoft.com' GROUP BY toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(common_recv_time)), INTERVAL 60 SECOND))))), common_schema_type LIMIT 100000 ;
Q66.Bandwidth Trend (Time Grain 60 second) by Filter(common_server_ip='111.10.53.14' and common_server_port=443) ;SELECT toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(common_recv_time)), INTERVAL 60 SECOND))))) AS stat_time, common_schema_type AS type, sum(common_sessions) AS sessions, sum(common_c2s_byte_num + common_s2c_byte_num) AS bytes, sum(common_c2s_pkt_num + common_s2c_pkt_num) AS packets FROM tsg_galaxy_v3.session_record AS session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_server_ip='111.10.53.14' and common_server_port=443 GROUP BY toDateTime(toDateTime(toUnixTimestamp(toDateTime(toStartOfInterval(toDateTime(toUnixTimestamp(common_recv_time)), INTERVAL 60 SECOND))))), common_schema_type LIMIT 100000 ;
Q67.Metrics Query by Filter(appid='2815') ;SELECT ROUND(SUM(common_c2s_pkt_retrans + common_s2c_pkt_retrans)/SUM(common_c2s_pkt_num + common_s2c_pkt_num),4) AS avg_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_app_id = '2815' ;
Q68.Metrics Query by Filter(http_domain='qq.com') ;SELECT ROUND(SUM(common_c2s_pkt_retrans + common_s2c_pkt_retrans)/SUM(common_c2s_pkt_num + common_s2c_pkt_num),4) AS avg_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND http_domain = 'qq.com' ;
Q69.Metrics Query by Filter(common_client_ip='116.178.223.59') ;SELECT ROUND(SUM(common_c2s_pkt_retrans + common_s2c_pkt_retrans)/SUM(common_c2s_pkt_num + common_s2c_pkt_num),4) AS avg_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_client_ip = '116.178.223.59' ;
Q70.Metrics Query by Filter(common_server_ip='8.8.8.8') ;SELECT ROUND(SUM(common_c2s_pkt_retrans + common_s2c_pkt_retrans)/SUM(common_c2s_pkt_num + common_s2c_pkt_num),4) AS avg_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_server_ip = '8.8.8.8' ;
Q71.Metrics Query by Filter(appid='2815') group by common_recv_time ;SELECT ROUND(SUM(common_c2s_pkt_retrans + common_s2c_pkt_retrans)/SUM(common_c2s_pkt_num + common_s2c_pkt_num),4) as max_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_app_id = '2815' GROUP by common_recv_time order BY max_pkt_retrans_percent desc limit 1 ;
Q72.Metrics Query by Filter(http_domain='qq.com') group by common_recv_time ;SELECT ROUND(SUM(common_c2s_pkt_retrans + common_s2c_pkt_retrans)/SUM(common_c2s_pkt_num + common_s2c_pkt_num),4) as max_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND http_domain = 'qq.com' GROUP by common_recv_time order BY max_pkt_retrans_percent desc limit 1 ;
Q73.Metrics Query by Filter(common_client_ip='116.178.223.59') group by common_recv_time ;SELECT ROUND(SUM(common_c2s_pkt_retrans + common_s2c_pkt_retrans)/SUM(common_c2s_pkt_num + common_s2c_pkt_num),4) as max_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_client_ip = '116.178.223.59' GROUP by common_recv_time order BY max_pkt_retrans_percent desc limit 1 ;
Q74.Metrics Query by Filter(common_server_ip='8.8.8.8') group by common_recv_time ;SELECT ROUND(SUM(common_c2s_pkt_retrans + common_s2c_pkt_retrans)/SUM(common_c2s_pkt_num + common_s2c_pkt_num),4) as max_pkt_retrans_percent FROM tsg_galaxy_v3.session_record WHERE common_recv_time >= toUnixTimestamp(start_time) AND common_recv_time < toUnixTimestamp(end_time) AND common_server_ip = '8.8.8.8' GROUP by common_recv_time order BY max_pkt_retrans_percent desc limit 1;

View File

@@ -0,0 +1 @@
192.168.41.30

View File

@@ -0,0 +1,339 @@
#!/bin/bash
#本脚本安装逐台服务器逐时间段的顺序迁移clickhouse数据
data_start_time="2021-09-10 00:00:00" #迁移数据common_recv_time 起始时间
data_end_time="2021-09-15 23:59:59"
query_timeout=36000 # 执行insert 的超时时间秒
data_split_part=170 #切割次数 每段时间区间= (data_start_time-data_end_time)/data_split_part
ck_username="default" #ck用户名
ck_password="galaxy2019" #ck密码
data_destination_table="tsg_galaxy_v3.session_record_local_t5" #目的表名
data_source_table="tsg_galaxy_xj.connection_record_log_local" #源表名
timestamp_start=`date --date="$data_start_time" +%s`
timestamp_end=`date --date="$data_end_time" +%s`
for ip in `cat iplist.txt`
do echo " $ip start"
slice_time_interval=$(((timestamp_end-timestamp_start)/data_split_part))
if [ $timestamp_start -lt $timestamp_end ];then
for ((i = 0 ; i < $data_split_part ; i++))
do
input_time_start=$((timestamp_start+i*slice_time_interval))
input_time_end=$((input_time_start+slice_time_interval))
clickhouse-client -h $ip --port 9001 -m -u $ck_username --password $ck_password --max_final_threads=1 --max_insert_threads=1 --max_threads=1 --max_execution_time=$query_timeout --query="insert
into
$data_destination_table
(common_log_id ,
common_service ,
common_recv_time ,
common_direction ,
common_l4_protocol ,
common_address_type ,
common_schema_type ,
common_policy_id ,
common_user_tags ,
common_action ,
common_sub_action ,
common_user_region ,
common_client_ip ,
common_client_port ,
common_internal_ip ,
common_entrance_id ,
common_device_id ,
common_isp ,
common_device_tag ,
common_data_center ,
common_encapsulation ,
common_sled_ip ,
common_client_location ,
common_client_asn ,
common_subscriber_id ,
common_server_ip ,
common_server_port ,
common_external_ip ,
common_server_location ,
common_server_asn ,
common_protocol_label ,
common_app_label ,
common_l7_protocol ,
common_sessions ,
common_c2s_pkt_num ,
common_s2c_pkt_num ,
common_c2s_byte_num ,
common_s2c_byte_num ,
common_start_time ,
common_end_time ,
common_establish_latency_ms ,
common_con_duration_ms ,
common_stream_dir ,
common_address_list ,
common_has_dup_traffic ,
common_stream_error ,
common_stream_trace_id ,
common_link_info_c2s ,
common_link_info_s2c ,
common_c2s_ipfrag_num ,
common_s2c_ipfrag_num ,
common_c2s_tcp_lostlen ,
common_s2c_tcp_lostlen ,
common_c2s_tcp_unorder_num ,
common_s2c_tcp_unorder_num ,
common_first_ttl ,
common_processing_time ,
http_url ,
http_host ,
http_domain ,
http_request_line ,
http_response_line ,
http_request_header ,
http_response_header ,
http_request_body ,
http_response_body ,
http_request_body_key ,
http_response_body_key ,
http_proxy_flag ,
http_sequence ,
http_snapshot ,
http_cookie ,
http_referer ,
http_user_agent ,
http_content_length ,
http_content_type ,
http_set_cookie ,
http_version ,
http_session_duration_ms ,
http_action_file_size ,
mail_protocol_type ,
mail_account ,
mail_to_cmd ,
mail_from_cmd ,
mail_from ,
mail_to ,
mail_cc ,
mail_bcc ,
mail_subject ,
mail_subject_charset ,
mail_content ,
mail_content_charset ,
mail_attachment_name ,
mail_attachment_name_charset ,
mail_attachment_content ,
mail_eml_file ,
mail_snapshot ,
dns_message_id ,
dns_qr ,
dns_opcode ,
dns_aa ,
dns_tc ,
dns_rd ,
dns_ra ,
dns_rcode ,
dns_qdcount ,
dns_ancount ,
dns_nscount ,
dns_arcount ,
dns_qname ,
dns_qtype ,
dns_qclass ,
dns_cname ,
dns_sub ,
dns_rr ,
ssl_version ,
ssl_sni ,
ssl_san ,
ssl_cn ,
ssl_pinningst ,
ssl_intercept_state ,
ssl_server_side_latency ,
ssl_client_side_latency ,
ssl_server_side_version ,
ssl_client_side_version ,
ssl_cert_verify ,
ssl_error ,
ssl_con_latency_ms ,
ssl_ja3_fingerprint ,
ssl_ja3_hash ,
quic_version ,
quic_sni ,
quic_user_agent ,
ftp_account ,
ftp_url ,
ftp_content ,
bgp_type ,
bgp_as_num ,
bgp_route ,
voip_calling_account ,
voip_called_account ,
voip_calling_number ,
voip_called_number ,
streaming_media_url ,
streaming_media_protocol ,
app_extra_info, common_vsys_id)
select
common_log_id,
common_service ,
common_recv_time ,
common_direction ,
common_l4_protocol ,
common_address_type ,
common_schema_type ,
common_policy_id ,
common_user_tags ,
common_action ,
common_sub_action ,
common_user_region ,
common_client_ip ,
common_client_port ,
common_internal_ip ,
common_entrance_id ,
common_device_id ,
common_isp ,
common_device_tag ,
common_data_center ,
common_encapsulation ,
common_sled_ip ,
common_client_location ,
common_client_asn ,
common_subscriber_id ,
common_server_ip ,
common_server_port ,
common_external_ip ,
common_server_location ,
common_server_asn ,
common_protocol_label ,
common_app_label ,
common_l7_protocol ,
common_sessions ,
common_c2s_pkt_num ,
common_s2c_pkt_num ,
common_c2s_byte_num ,
common_s2c_byte_num ,
common_start_time ,
common_end_time ,
common_establish_latency_ms ,
common_con_duration_ms ,
common_stream_dir ,
common_address_list ,
common_has_dup_traffic ,
common_stream_error ,
common_log_id ,
common_link_info_c2s ,
common_link_info_s2c ,
common_c2s_ipfrag_num ,
common_s2c_ipfrag_num ,
common_c2s_tcp_lostlen ,
common_s2c_tcp_lostlen ,
common_c2s_tcp_unorder_num ,
common_s2c_tcp_unorder_num ,
common_first_ttl ,
common_processing_time ,
http_url ,
http_host ,
http_domain ,
http_request_line ,
http_response_line ,
http_request_header ,
http_response_header ,
http_request_body ,
http_response_body ,
http_request_body_key ,
http_response_body_key ,
http_proxy_flag ,
http_sequence ,
http_snapshot ,
http_cookie ,
http_referer ,
http_user_agent ,
http_content_length ,
http_content_type ,
http_set_cookie ,
http_version ,
http_session_duration_ms ,
http_action_file_size ,
mail_protocol_type ,
mail_account ,
mail_to_cmd ,
mail_from_cmd ,
mail_from ,
mail_to ,
mail_cc ,
mail_bcc ,
mail_subject ,
mail_subject_charset ,
mail_content ,
mail_content_charset ,
mail_attachment_name ,
mail_attachment_name_charset ,
mail_attachment_content ,
mail_eml_file ,
mail_snapshot ,
dns_message_id ,
dns_qr ,
dns_opcode ,
dns_aa ,
dns_tc ,
dns_rd ,
dns_ra ,
dns_rcode ,
dns_qdcount ,
dns_ancount ,
dns_nscount ,
dns_arcount ,
dns_qname ,
dns_qtype ,
dns_qclass ,
dns_cname ,
dns_sub ,
dns_rr ,
ssl_version ,
ssl_sni ,
ssl_san ,
ssl_cn ,
ssl_pinningst ,
ssl_intercept_state ,
ssl_server_side_latency ,
ssl_client_side_latency ,
ssl_server_side_version ,
ssl_client_side_version ,
ssl_cert_verify ,
ssl_error ,
ssl_con_latency_ms ,
ssl_ja3_fingerprint ,
ssl_ja3_hash ,
quic_version ,
quic_sni ,
quic_user_agent ,
ftp_account ,
ftp_url ,
ftp_content ,
bgp_type ,
bgp_as_num ,
bgp_route ,
voip_calling_account ,
voip_called_account ,
voip_calling_number ,
voip_called_number ,
streaming_media_url ,
streaming_media_protocol ,
app_extra_info,rand()%100 as common_vsys_id
from
$data_source_table
where
common_recv_time >= $input_time_start
and common_recv_time < $input_time_end"
start_time=`date -d @$input_time_start "+%Y-%m-%d %H:%M:%S"`
end_time=`date -d @$input_time_end "+%Y-%m-%d %H:%M:%S"`
echo " $data_destination_table common_recv_time>=$start_time and common_recv_time <=$end_time finished"
done
else
echo " Error timestamp"
continue
fi
echo " $ip done"
done
echo " Migrate Data Finished"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
select 'session_record_old' as table_name, count(*) as cnt from tsg_galaxy_tmp.session_record_old;
select 'security_event_old' as table_name, count(*) as cnt from tsg_galaxy_tmp.security_event_old;
select 'transaction_record_old' as table_name, count(*) as cnt from tsg_galaxy_tmp.transaction_record_old;
select 'voip_record_old' as table_name, count(*) as cnt from tsg_galaxy_tmp.voip_record_old;
select 'proxy_event_old' as table_name, count(*) as cnt from tsg_galaxy_tmp.proxy_event_old;
select 'dos_event_old' as table_name, count(*) as cnt from tsg_galaxy_tmp.dos_event_old;

View File

@@ -0,0 +1,11 @@
select 'session_record' as table_name, count(*) as cnt from tsg_galaxy_v3.session_record;
select 'security_event' as table_name, count(*) as cnt from tsg_galaxy_v3.security_event;
select 'transaction_record' as table_name, count(*) as cnt from tsg_galaxy_v3.transaction_record;
select 'voip_record' as table_name, count(*) as cnt from tsg_galaxy_v3.voip_record;
select 'proxy_event' as table_name, count(*) as cnt from tsg_galaxy_v3.proxy_event;
select 'dos_event' as table_name, count(*) as cnt from tsg_galaxy_v3.dos_event;

View File

@@ -0,0 +1,20 @@
SELECT log_id, recv_time, vsys_id, assessment_date, lot_number, file_name, assessment_file, assessment_type, features, `size`, file_checksum_sha
FROM tsg_galaxy_tmp.assessment_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT vsys_id, recv_time, log_id, profile_id, start_time, end_time, attack_type, severity, conditions, destination_ip, destination_country, source_ip_list, source_country_list, session_rate, packet_rate, bit_rate
FROM tsg_galaxy_tmp.dos_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, shaping_rule_list, proxy_rule_list, statistics_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, app_extra_info, fqdn_category_list, ip_protocol, decoded_path, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, ssl_version, ssl_sni, ssl_san, ssl_cn, ssl_handshake_latency_ms, ssl_ja3_hash, ssl_ja3s_hash, ssl_cert_issuer, ssl_cert_subject, ssl_esni_flag, ssl_ech_flag, dtls_cookie, dtls_version, dtls_sni, dtls_san, dtls_cn, dtls_handshake_latency_ms, dtls_ja3_fingerprint, dtls_ja3_hash, dtls_cert_issuer, dtls_cert_subject, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_starttls_flag, mail_eml_file, ftp_account, ftp_url, ftp_link_type, quic_version, quic_sni, quic_user_agent, rdp_cookie, rdp_security_protocol, rdp_client_channels, rdp_keyboard_layout, rdp_client_version, rdp_client_name, rdp_client_product_id, rdp_desktop_width, rdp_desktop_height, rdp_requested_color_depth, rdp_certificate_type, rdp_certificate_count, rdp_certificate_permanent, rdp_encryption_level, rdp_encryption_method, ssh_version, ssh_auth_success, ssh_client_version, ssh_server_version, ssh_cipher_alg, ssh_mac_alg, ssh_compression_alg, ssh_kex_alg, ssh_host_key_alg, ssh_host_key, ssh_hassh, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, stratum_cryptocurrency, stratum_mining_pools, stratum_mining_program, stratum_mining_subscribe, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, encapsulation, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_tmp.monitor_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, shaping_rule_list, proxy_rule_list, statistics_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, app_extra_info, fqdn_category_list, ip_protocol, decoded_path, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, doh_url, doh_host, doh_request_line, doh_response_line, doh_cookie, doh_referer, doh_user_agent, doh_content_length, doh_content_type, doh_set_cookie, doh_version, doh_message_id, doh_qr, doh_opcode, doh_aa, doh_tc, doh_rd, doh_ra, doh_rcode, doh_qdcount, doh_ancount, doh_nscount, doh_arcount, doh_qname, doh_qtype, doh_qclass, doh_cname, doh_sub, doh_rr, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, encapsulation, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_tmp.proxy_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, shaping_rule_list, proxy_rule_list, statistics_rule_list, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, app_extra_info, fqdn_category_list, ip_protocol, decoded_path, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, ssl_version, ssl_sni, ssl_san, ssl_cn, ssl_handshake_latency_ms, ssl_ja3_hash, ssl_ja3s_hash, ssl_cert_issuer, ssl_cert_subject, ssl_esni_flag, ssl_ech_flag, dtls_cookie, dtls_version, dtls_sni, dtls_san, dtls_cn, dtls_handshake_latency_ms, dtls_ja3_fingerprint, dtls_ja3_hash, dtls_cert_issuer, dtls_cert_subject, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_starttls_flag, mail_eml_file, ftp_account, ftp_url, ftp_link_type, quic_version, quic_sni, quic_user_agent, rdp_cookie, rdp_security_protocol, rdp_client_channels, rdp_keyboard_layout, rdp_client_version, rdp_client_name, rdp_client_product_id, rdp_desktop_width, rdp_desktop_height, rdp_requested_color_depth, rdp_certificate_type, rdp_certificate_count, rdp_certificate_permanent, rdp_encryption_level, rdp_encryption_method, ssh_version, ssh_auth_success, ssh_client_version, ssh_server_version, ssh_cipher_alg, ssh_mac_alg, ssh_compression_alg, ssh_kex_alg, ssh_host_key_alg, ssh_host_key, ssh_hassh, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, stratum_cryptocurrency, stratum_mining_pools, stratum_mining_program, stratum_mining_subscribe, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, encapsulation, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_tmp.security_event where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, shaping_rule_list, proxy_rule_list, statistics_rule_list, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, app_extra_info, fqdn_category_list, ip_protocol, decoded_path, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, ssl_version, ssl_sni, ssl_san, ssl_cn, ssl_handshake_latency_ms, ssl_ja3_hash, ssl_ja3s_hash, ssl_cert_issuer, ssl_cert_subject, ssl_esni_flag, ssl_ech_flag, dtls_cookie, dtls_version, dtls_sni, dtls_san, dtls_cn, dtls_handshake_latency_ms, dtls_ja3_fingerprint, dtls_ja3_hash, dtls_cert_issuer, dtls_cert_subject, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_starttls_flag, mail_eml_file, ftp_account, ftp_url, ftp_link_type, quic_version, quic_sni, quic_user_agent, rdp_cookie, rdp_security_protocol, rdp_client_channels, rdp_keyboard_layout, rdp_client_version, rdp_client_name, rdp_client_product_id, rdp_desktop_width, rdp_desktop_height, rdp_requested_color_depth, rdp_certificate_type, rdp_certificate_count, rdp_certificate_permanent, rdp_encryption_level, rdp_encryption_method, ssh_version, ssh_auth_success, ssh_client_version, ssh_server_version, ssh_cipher_alg, ssh_mac_alg, ssh_compression_alg, ssh_kex_alg, ssh_host_key_alg, ssh_host_key, ssh_hassh, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, stratum_cryptocurrency, stratum_mining_pools, stratum_mining_program, stratum_mining_subscribe, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, encapsulation, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_tmp.session_record where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, ingestion_time, processing_time, insert_time, address_type, vsys_id, client_ip, client_port, server_ip, server_port, sent_pkts, received_pkts, sent_bytes, received_bytes, dns_message_id, dns_qr, dns_opcode, dns_aa, dns_tc, dns_rd, dns_ra, dns_rcode, dns_qdcount, dns_ancount, dns_nscount, dns_arcount, dns_qname, dns_qtype, dns_qclass, dns_cname, dns_sub, dns_rr, dns_response_latency_ms, http_url, http_host, http_request_line, http_response_line, http_request_body, http_response_body, http_proxy_flag, http_sequence, http_cookie, http_referer, http_user_agent, http_request_content_length, http_request_content_type, http_response_content_length, http_response_content_type, http_set_cookie, http_version, http_status_code, http_response_latency_ms, http_session_duration_ms, http_action_file_size, mail_protocol_type, mail_account, mail_from_cmd, mail_to_cmd, mail_from, mail_password, mail_to, mail_cc, mail_bcc, mail_subject, mail_subject_charset, mail_attachment_name, mail_attachment_name_charset, mail_starttls_flag, mail_eml_file, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye
FROM tsg_galaxy_tmp.transaction_record where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');
SELECT recv_time, log_id, decoded_as, session_id, start_timestamp_ms, end_timestamp_ms, duration_ms, tcp_handshake_latency_ms, ingestion_time, processing_time, insert_time, device_id, out_link_id, in_link_id, device_tag, data_center, device_group, sled_ip, address_type, vsys_id, t_vsys_id, flags, flags_identify_info, security_rule_list, security_action, monitor_rule_list, shaping_rule_list, proxy_rule_list, statistics_rule_list, sc_rule_list, sc_rsp_raw, sc_rsp_decrypted, proxy_action, proxy_pinning_status, proxy_intercept_status, proxy_passthrough_reason, proxy_client_side_latency_ms, proxy_server_side_latency_ms, proxy_client_side_version, proxy_server_side_version, proxy_cert_verify, proxy_intercept_error, monitor_mirrored_pkts, monitor_mirrored_bytes, client_ip, client_port, client_os_desc, client_geolocation, client_asn, subscriber_id, imei, imsi, phone_number, apn, server_ip, server_port, server_os_desc, server_geolocation, server_asn, server_fqdn, server_domain, app_transition, app, app_debug_info, app_content, app_extra_info, fqdn_category_list, ip_protocol, decoded_path, sip_call_id, sip_originator_description, sip_responder_description, sip_user_agent, sip_server, sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_originator_sdp_media_type, sip_originator_sdp_content, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port, sip_responder_sdp_media_type, sip_responder_sdp_content, sip_duration_s, sip_bye, rtp_payload_type_c2s, rtp_payload_type_s2c, rtp_pcap_path, rtp_originator_dir, sent_pkts, received_pkts, sent_bytes, received_bytes, tcp_c2s_ip_fragments, tcp_s2c_ip_fragments, tcp_c2s_lost_bytes, tcp_s2c_lost_bytes, tcp_c2s_o3_pkts, tcp_s2c_o3_pkts, tcp_c2s_rtx_pkts, tcp_s2c_rtx_pkts, tcp_c2s_rtx_bytes, tcp_s2c_rtx_bytes, tcp_rtt_ms, tcp_client_isn, tcp_server_isn, packet_capture_file, in_src_mac, out_src_mac, in_dest_mac, out_dest_mac, encapsulation, dup_traffic_flag, tunnel_endpoint_a_desc, tunnel_endpoint_b_desc
FROM tsg_galaxy_tmp.voip_record where recv_time >= toUnixTimestamp('2030-01-01 00:00:00') AND recv_time <toUnixTimestamp('2030-01-01 00:00:01');

View File

@@ -0,0 +1,15 @@
#!/bin/bash
home=$(cd `dirname $0`; pwd)
# 遍历每个节点执行迁移
for ip in `cat iplist.txt`
do
# 后台执行,输出日志
echo "$ip节点"
ssh $ip "[ ! -d $home ] && mkdir -p $home"
scp -r $home/*local_table_to_2402.sh $ip:$home/
ssh $ip "cd $home && chmod +x ./*.sh"
echo ""
done

View File

@@ -0,0 +1,84 @@
#!/bin/bash
# 本脚本逐时间段按最新往前顺序迁移clickhouse数据TSG24.01日志重组后数据迁移
# 迁移表 参数可选值session_recordsecurity_eventmonitor_eventtransaction_recordvoip_recordproxy_eventdos_event
table=$1
# 数据开始时间(UTC) 参数, 例如:"2023-10-26 00:00:00"
data_start_time=$2
# 数据结束时间(UTC) 参数, 例如:"2023-10-28 00:00:00"
data_end_time=$3
# 每批迁移数据时间段长度(分钟) 参数, 例如:240
slice_interval_minute=$4
timestamp_start=`date --utc --date="$data_start_time" +%s`
timestamp_end=`date --utc --date="$data_end_time" +%s`
# 校验迁移表参数
case $table in
"session_record")
# 迁移session_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"security_event")
# 迁移security_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"monitor_event")
# 迁移monitor_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"transaction_record")
# 迁移transaction_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"voip_record")
# 迁移voip_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"proxy_event")
# 迁移proxy_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"dos_event")
# 迁移dos_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
*)
echo "所迁移表${table}不在范围:session_recordsecurity_eventmonitor_eventtransaction_recordvoip_recordproxy_eventdos_event"
exit 1
;;
esac
# 校验时间参数
if [ -z "$timestamp_start" ]; then
echo "data_start_time fmt err"
exit 1
fi
if [ -z "$timestamp_end" ]; then
echo "data_end_time fmt err"
exit 1
fi
if [ $timestamp_start -ge $timestamp_end ]; then
echo "date range err"
exit 1
fi
if [[ ! "$slice_interval_minute" =~ ^[1-9][0-9]*$ ]]; then
echo "slice_interval_minute参数必须是正确的分钟数"
exit 1
fi
home=$(cd `dirname $0`; pwd)
# 遍历每个节点执行迁移
for ip in `cat iplist.txt`
do
# 后台执行,输出日志
echo "$ip 节点开始执行迁移"
ssh $ip "cd $home && chmod +x ./*.sh && ./start_migrate_local_table_to_2402.sh $table '$data_start_time' '$data_end_time' $slice_interval_minute"
echo ""
done

View File

@@ -0,0 +1,61 @@
#!/bin/bash
home=$(cd `dirname $0`; pwd)
table=$1
if [ -z "$table" ]; then
echo "缺少table参数"
exit 1
fi
ips=($(cat iplist.txt))
ips_size=${#ips[*]}
ip_starts=$( seq 0 $(($ips_size - 1)) )
ip_ends=$( seq 0 $(($ips_size - 1)) )
for ((i=0;i<$ips_size;i++))
do
ip_starts[$i]=0
ip_ends[$i]=0
done
while true ; do
# 遍历每个节点
for ((i=0;i<$ips_size;i++)); do
ip=${ips[$i]}
start=${ip_starts[$i]}
end=${ip_ends[$i]}
if [ $start -eq 0 ]; then
info=$(ssh $ip "cat $home/log_$table.txt | grep migrate_table_start")
if [ -n "$info" ]; then
echo "${ip}迁移开始:${info}"
ip_starts[$i]=1
start=1
fi
fi
if [ $start -eq 1 ] && [ $end -eq 0 ] ; then
info=$(ssh $ip "cat $home/log_$table.txt | grep migrate_table_end")
if [ -n "$info" ]; then
echo "${ip}迁移结束:${info}"
ip_ends[$i]=1
end=1
fi
fi
done
#全部结束
finish_cnt=0
for ((i=0;i<$ips_size;i++)); do
start=${ip_starts[$i]}
end=${ip_ends[$i]}
if [ $start -eq 1 ] && [ $end -eq 1 ] ; then
finish_cnt=$(($finish_cnt+1))
fi
done
if [ $finish_cnt -ge $ips_size ]; then
echo "所有节点迁移结束"
break
fi
sleep 2
done

View File

@@ -0,0 +1,77 @@
#!/bin/bash
# 本脚本逐时间段按最新往前顺序迁移clickhouse数据TSG24.01日志重组后数据迁移
# 迁移表 参数可选值session_recordsecurity_eventmonitor_eventtransaction_recordvoip_recordproxy_eventdos_event
table=$1
# 数据开始时间(UTC) 参数, 例如:"2023-10-26 00:00:00"
data_start_time=$2
# 数据结束时间(UTC) 参数, 例如:"2023-10-28 00:00:00"
data_end_time=$3
# 每批迁移数据时间段长度(分钟) 参数, 例如:240
slice_interval_minute=$4
timestamp_start=`date --utc --date="$data_start_time" +%s`
timestamp_end=`date --utc --date="$data_end_time" +%s`
# 校验迁移表参数
case $table in
"session_record")
# 迁移session_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"security_event")
# 迁移security_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"monitor_event")
# 迁移monitor_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"transaction_record")
# 迁移transaction_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"voip_record")
# 迁移voip_record
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"proxy_event")
# 迁移proxy_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
"dos_event")
# 迁移dos_event
echo "迁移表${table}, start:$data_start_time, end:$data_end_time, interval_minute:$slice_interval_minute"
;;
*)
echo "所迁移表${table}不在范围:session_recordsecurity_eventmonitor_eventtransaction_recordvoip_recordproxy_eventdos_event"
exit 1
;;
esac
# 校验时间参数
if [ -z "$timestamp_start" ]; then
echo "data_start_time fmt err"
exit 1
fi
if [ -z "$timestamp_end" ]; then
echo "data_end_time fmt err"
exit 1
fi
if [ $timestamp_start -ge $timestamp_end ]; then
echo "date range err"
exit 1
fi
if [[ ! "$slice_interval_minute" =~ ^[1-9][0-9]*$ ]]; then
echo "slice_interval_minute参数必须是正确的分钟数"
exit 1
fi
# 后台执行,输出日志
nohup ./migrate_local_table_to_2402.sh "$table" "$data_start_time" "$data_end_time" $slice_interval_minute > "log_$table.txt" 2>&1 &
echo "已启动迁移${table}表任务,时间范围[$data_start_time, $data_end_time], 每批迁移段分钟:$slice_interval_minute, 日志输出到:log_$table.txt。请查看日志文件确认每段数据迁移情况"

View File

@@ -0,0 +1,53 @@
set distributed_ddl_task_timeout = 180;
-- 删除源表同步子表物化视图
-- 源表rename到历史表
RENAME TABLE tsg_galaxy_tmp.session_record_local to tsg_galaxy_tmp.session_record_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_tmp.security_event_local to tsg_galaxy_tmp.security_event_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_tmp.transaction_record_local to tsg_galaxy_tmp.transaction_record_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_tmp.voip_record_local to tsg_galaxy_tmp.voip_record_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_tmp.proxy_event_local to tsg_galaxy_tmp.proxy_event_local_old on cluster ck_cluster;
RENAME TABLE tsg_galaxy_tmp.dos_event_local to tsg_galaxy_tmp.dos_event_local_old on cluster ck_cluster;
drop table if exists tsg_galaxy_tmp.session_record_old ON CLUSTER ck_query;
drop table if exists tsg_galaxy_tmp.security_event_old ON CLUSTER ck_query;
drop table if exists tsg_galaxy_tmp.transaction_record_old ON CLUSTER ck_query;
drop table if exists tsg_galaxy_tmp.voip_record_old ON CLUSTER ck_query;
drop table if exists tsg_galaxy_tmp.proxy_event_old ON CLUSTER ck_query;
drop table if exists tsg_galaxy_tmp.dos_event_old ON CLUSTER ck_query;
-- 创建源分布式表old
create table IF NOT EXISTS tsg_galaxy_tmp.session_record_old ON CLUSTER ck_query (
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_tmp,session_record_local_old,rand());
create table IF NOT EXISTS tsg_galaxy_tmp.security_event_old ON CLUSTER ck_query (
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_tmp,security_event_local_old,rand());
CREATE TABLE IF NOT EXISTS tsg_galaxy_tmp.transaction_record_old ON CLUSTER ck_query(
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_tmp,transaction_record_local_old,rand());
CREATE TABLE IF NOT EXISTS tsg_galaxy_tmp.voip_record_old ON CLUSTER ck_query(
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_tmp,voip_record_local_old,rand());
create table IF NOT EXISTS tsg_galaxy_tmp.proxy_event_old ON CLUSTER ck_query (
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_tmp,proxy_event_local_old,rand());
CREATE TABLE IF NOT EXISTS tsg_galaxy_tmp.dos_event_old ON CLUSTER ck_query(
log_id UInt64,
profile_id UInt64,
start_time Int64
) ENGINE = Distributed(ck_cluster,tsg_galaxy_tmp,dos_event_local_old,rand());

View File

@@ -0,0 +1,47 @@
set distributed_ddl_task_timeout = 180;
-- 删除源表同步子表物化视图
create database if not exists tsg_galaxy_tmp on cluster ck_cluster;
create database if not exists tsg_galaxy_tmp on cluster ck_query;
-- 源表rename到历史表
RENAME TABLE tsg_galaxy_v3.session_record_local to tsg_galaxy_tmp.session_record_local on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.security_event_local to tsg_galaxy_tmp.security_event_local on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.transaction_record_local to tsg_galaxy_tmp.transaction_record_local on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.voip_record_local to tsg_galaxy_tmp.voip_record_local on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.proxy_event_local to tsg_galaxy_tmp.proxy_event_local on cluster ck_cluster;
RENAME TABLE tsg_galaxy_v3.dos_event_local to tsg_galaxy_tmp.dos_event_local on cluster ck_cluster;
-- 创建源分布式表old
create table IF NOT EXISTS tsg_galaxy_tmp.session_record_old ON CLUSTER ck_query (
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_tmp,session_record_local,rand());
create table IF NOT EXISTS tsg_galaxy_tmp.security_event_old ON CLUSTER ck_query (
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_tmp,security_event_local,rand());
CREATE TABLE IF NOT EXISTS tsg_galaxy_tmp.transaction_record_old ON CLUSTER ck_query(
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_tmp,transaction_record_local,rand());
CREATE TABLE IF NOT EXISTS tsg_galaxy_tmp.voip_record_old ON CLUSTER ck_query(
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_tmp,voip_record_local,rand());
create table IF NOT EXISTS tsg_galaxy_tmp.proxy_event_old ON CLUSTER ck_query (
common_recv_time Int64,
common_log_id UInt64
) ENGINE =Distributed(ck_cluster,tsg_galaxy_tmp,proxy_event_local,rand());
CREATE TABLE IF NOT EXISTS tsg_galaxy_tmp.dos_event_old ON CLUSTER ck_query(
log_id UInt64,
profile_id UInt64,
start_time Int64
) ENGINE = Distributed(ck_cluster,tsg_galaxy_tmp,dos_event_local,rand());

View File

@@ -0,0 +1,321 @@
由于各环境当前使用tsg版本与升级的版本均不同,故在此提供通用步骤,因主键与字段不同,旧版本统一升级至23.07版本进行处理,为及时接入数据,离线迁移操作在tmp数据库进行。
具体步骤:
Step1 :停止入库任务。
Step2 旧版本clickhouse库表迁移至tsg_galaxy_tmp,验证成功后删除tsg_galaxy_v3数据库
Step3 : tsg_galaxy_v3数据库新建目标版本库表如24.04
Step4 : 启动入库任务->tsg_galaxy_v3
Step5 : tsg_galaxy_tmp数据库表升级到23.07修改升级语句中数据库名tsg_galaxy_v3->tsg_galaxy_tmp,升级验证成功后重命名为old表。
Step6 tsg_galaxy_tmp数据库新建24.02版本库表,修改建表语句中数据库名tsg_galaxy_v3->tsg_galaxy_tmp
Step7 : 迁移脚本迁移tsg_galaxy_tmp(23.07)->tsg_galaxy_tmp(24.02)
Step8 : 升级tsg_galaxy_tmp(24.02)->升级tsg_galaxy_tmp目标版本如24.04
Step9 : 命令迁移tsg_galaxy_tmp目标版本如24.04->tsg_galaxy_v3目标版本如24.04,按照partition手动迁移
说明
请按步骤依次执行,执行脚本报错时联系研发处理后再执行之后的步骤。
所有ck步骤都需要在query节点执行
执行所有sql语句之前需要停止日志留存调度任务,确保ck中无分布式ddl语句执行,否则执行的sql会阻塞住,影响后续步骤执行
验证sql需要在所有query节点执行
clickhouse-client -h 127.0.0.1 --port 9001 -m -u default --password ****** --query "select query from system.distributed_ddl_queue where status =0 limit 1"
若返回结果为空则可执行升级步骤,否则需要等待。
一、停止旧表ck入库任务
停止旧表ck入库任务
二、旧版本clickhouse库表迁移至tsg_galaxy_tmp
1.查看迁移前v3库表数据量
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < cat_v3_old_table_row_count.sql
2.执行迁移sql
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < move_v3_to_tmp.sql
3.查看tmp库old表数据量
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < cat_tmp_old_table_row_count.sql
4.数据量与原数据量一致,可删除数据库tsg_galaxy_v3
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 --query "drop database if exists tsg_galaxy_v3 on cluster ck_cluster "
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 --query "drop database if exists tsg_galaxy_v3 on cluster ck_query "
tsg_galaxy_v3数据库新建目标版本库表并进行校验
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 对应版本初始化sql
启动ck入库任务
1.启动目标版本ck入库任务
tsg_galaxy_tmp数据库表升级到23.07,升级验证成功后重命名为old表
1.tsg_galaxy_tmp旧版本clickhouse库表升级到23.07版本注意所有版本升级sql需要将tsg_galaxy_v3替换tsg_galaxy_tmp,包括校验sql,依次执行版本升级语句,并进行校验
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < 各版本升级sql
2.验证成功后重命名为old表
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < move_tmp_2307_to_tmp_2307_old.sql
3.查看tmp库old表数据量
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < cat_tmp_old_table_row_count.sql
临时库初始化24.02版本库表
1.执行2402版本初始化建表语句
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < init_tsg_galaxy_tmp_24_02_table.sql
2.校验表结构
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ****** --distributed_ddl_task_timeout 180 < check_tsg_galaxy_tmp_24_02_table.sql
无报错信息说明校验通过
离线脚本同步历史数据至临时数据库2402版本库表
在query节点执行以下步骤,iplist.txt中为ck所有data节点ip地址
步骤描述
1.进入migrate_table_2402文件夹,使脚本可执行
chmod +x ./*.sh
2.分发迁移脚本到data节点
./01_send_migrate_table_scripts.sh
2.选择迁移某个表,同步需要时间区间的数据,时间区间:实时同步任务开始时间向前推n天, 实时同步任务开始时间),时间区间为左闭右开,不包含结束时间点
# 迁移security_event表
./02_start_migrate_table.sh security_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
3.监控data节点迁移情况,所有表迁移完成后,确认每个节点同步数据成功/失败批次数,如有失败批次确认是否需要处理
# 监控security_event表迁移
./03_monitor_migrate_table.sh security_event
4.选择下个张需要迁移的表,重复2-4步骤支持选择迁移的表有: security_event, monitor_event, session_record, transaction_record, voip_record, proxy_event, dos_event
迁移和监控各个表执行命令示例
# 迁移security_event表
./02_start_migrate_table.sh security_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控security_event表迁移
./03_monitor_migrate_table.sh security_event
# 迁移monitor_event表
./02_start_migrate_table.sh monitor_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控monitor_event表迁移
./03_monitor_migrate_table.sh monitor_event
# 迁移session_record表
./02_start_migrate_table.sh session_record "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控session_record表迁移
./03_monitor_migrate_table.sh session_record
# 迁移transaction_record表
./02_start_migrate_table.sh transaction_record "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控transaction_record表迁移
./03_monitor_migrate_table.sh transaction_record
# 迁移voip_record表
./02_start_migrate_table.sh voip_record "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控voip_record表迁移
./03_monitor_migrate_table.sh voip_record
# 迁移proxy_event表
./02_start_migrate_table.sh proxy_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控proxy_event表迁移
./03_monitor_migrate_table.sh proxy_event
# 迁移dos_event表
./02_start_migrate_table.sh dos_event "2024-01-10 00:00:00" "2024-01-20 00:00:00" 60
# 监控dos_event表迁移
./03_monitor_migrate_table.sh dos_event
迁移日志无报错,数据迁移完成
如果有数据迁移失败批次,查看新老表迁移数据量对应情况(ck每台data节点)
-- security_event
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_tmp.security_event_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
and common_action in (16, 96)
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_tmp.security_event_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- monitor_event
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_tmp.security_event_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
and common_action = 1
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_tmp.monitor_event_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- session_record
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_tmp.session_record_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_tmp.session_record_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- transaction_record
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_tmp.transaction_record_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_tmp.transaction_record_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- voip_record
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_tmp.voip_record_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_tmp.voip_record_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- proxy_event
SELECT
date_trunc('day', toDateTime(common_recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_tmp.proxy_event_local_old
WHERE common_recv_time>= toUnixTimestamp('2024-01-10 00:00:00') and common_recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(common_recv_time))
order by d
;
SELECT
date_trunc('day', toDateTime(recv_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_tmp.proxy_event_local
WHERE recv_time >= toUnixTimestamp('2024-01-10 00:00:00') and recv_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(recv_time))
order by d
;
-- dos_event
SELECT
date_trunc('day', toDateTime(start_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_tmp.dos_event_local_old
WHERE start_time>= toUnixTimestamp('2024-01-10 00:00:00') and start_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(start_time))
order by d
;
SELECT
date_trunc('day', toDateTime(start_time)) d,
COUNT(1) cnt
FROM tsg_galaxy_tmp.dos_event_local
WHERE start_time >= toUnixTimestamp('2024-01-10 00:00:00') and start_time < toUnixTimestamp('2024-01-20 00:00:00')
group by date_trunc('day', toDateTime(start_time))
order by d
;
升级tsg_galaxy_tmp(24.02)->升级tsg_galaxy_tmp目标版本如24.04)主要目的使临时库与实际库表结构相同
从24.03开始依次执行直至目标版本注意所有版本升级sql需要将tsg_galaxy_v3替换tsg_galaxy_tmp,包括校验sql
九、命令迁移tsg_galaxy_tmp目标版本如24.04->tsg_galaxy_v3目标版本如24.04,按照partition手动迁移
登录命令行之后手动按需执行需要迁移的分区如下示例迁移2024年4月1日的数据
clickhouse-client -h 127.0.0.1 --port 9001 -m -n -u default --password ******
ALTER TABLE tsg_galaxy_tmp.session_record_local on cluster ck_cluster move partition 20240401 to tsg_galaxy_v3.session_record_local;
ALTER TABLE tsg_galaxy_tmp.security_event_local on cluster ck_cluster move partition 20240401 to tsg_galaxy_v3.security_event_local;
ALTER TABLE tsg_galaxy_tmp.transaction_record_local on cluster ck_cluster move partition 20240401 to tsg_galaxy_v3.transaction_record_local;
ALTER TABLE tsg_galaxy_tmp.voip_record_local on cluster ck_cluster move partition 20240401 to tsg_galaxy_v3.voip_record_local;
ALTER TABLE tsg_galaxy_tmp.proxy_event_local on cluster ck_cluster move partition 20240401 to tsg_galaxy_v3.proxy_event_local;
ALTER TABLE tsg_galaxy_tmp.dos_event_local on cluster ck_cluster move partition 20240401 to tsg_galaxy_v3.dos_event_local;