Ikjun Yeom

82 papers A* 2B 6Journal 50Unranked 24
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Myungsu Kim, Ikjun Yeom, Younghoon Kim
2025 J jnl
CoRR
Joon Yong Hwang, Chanseo Park, Ikjun Yeom, Younghoon Kim
2024 conf
USENIX ATC
Sugi Lee, MinGyu Choi, Ikjun Yeom, Younghoon Kim
2023 A* conf
INFOCOM
Seongho Lee, Ikjun Yeom, Younghoon Kim
2022 J jnl
J. Netw. Comput. Appl.
Changue Jung, Suhwan Kim, Younghoon Kim, Ikjun Yeom
2021 J jnl
IEEE Access
Sugi Lee, Yusung Kim, Honguk Woo, Ikjun Yeom
2021 A* conf
INFOCOM
Changue Jung, Suhwan Kim, Ikjun Yeom, Honguk Woo, Younghoon Kim
2021 J jnl
IEEE Access
Minjae Park, Youngseok Lee, Ikjun Yeom, Honguk Woo
2021 J jnl
IEEE Access
Youngseok Lee, Woo Kyung Kim, Sung Hyun Choi, Ikjun Yeom, Honguk Woo
2020 J jnl
IEEE Access
Youngseok Lee, Su-In Lee, Chan-Gun Lee, Ikjun Yeom, Honguk Woo
2020 J jnl
IEEE Access
Hyunsung Lee, Jinkyu Lee, Ikjun Yeom, Honguk Woo
2020 J jnl
IEEE Trans. Parallel Distributed Syst.
Sugi Lee, Ikjun Yeom, Dohyung Kim
2020 J jnl
IEEE Access
Gwangpyo Yoo, Minjong Yoo, Ikjun Yeom, Honguk Woo
2019 conf
ICOIN
Jeongmin Moon, Mukoe Cheong, Ikjun Yeom, Honguk Woo
2019 J jnl
Sensors
Doohwan Song, Ikjun Yeom, Honguk Woo
2019 J jnl
Sensors
Seunghwan Jeong, Gwangpyo Yoo, Minjong Yoo, Ikjun Yeom, Honguk Woo
2019 J jnl
IEEE Access
Mukoe Cheong, Hyunsung Lee, Ikjun Yeom, Honguk Woo
2018 J jnl
Int. J. Commun. Syst.
Do-hyung Kim, Ikjun Yeom, Tae-Jin Lee
2017 J jnl
J. Netw. Comput. Appl.
Sugi Lee, Younghoon Kim, Ikjun Yeom, Yusung Kim
2017 conf
ICUFN
Mukoe Cheong, Youngseok Lee, Weijin Park, Ikjun Yeom
2017 J jnl
J. Netw. Comput. Appl.
Jonghoon Park, Cheoleun Moon, Ikjun Yeom, Yusung Kim
2017 conf
ICOIN
Bummin Kim, Hyunha Park, Yusung Kim, Ikjun Yeom
2017 conf
ICOIN
Changdae Lim, Yusung Kim, Ikjun Yeom
2017 conf
CarSys@MobiCom
Do-hyung Kim, Tae-Jin Lee, Ikjun Yeom
2017 conf
ISCIT
Jeongin Kim, Ikjun Yeom
2017 conf
VNC
Do-hyung Kim, Ikjun Yeom, Tae-Jin Lee
2017 J jnl
IEEE Trans. Inf. Forensics Secur.
Do-hyung Kim, Jun Bi, Athanasios V. Vasilakos, Ikjun Yeom
2017 conf
ICOIN
Kilyong Shin, Yusung Kim, Ikjun Yeom
2017 B conf
EWSN
Hyunha Park, Ikjun Yeom, Yusung Kim
2016 J jnl
J. Netw. Comput. Appl.
Yusung Kim, Younghoon Kim, Jun Bi, Ikjun Yeom
2016 J jnl
Ad Hoc Networks
Do-hyung Kim, Jong-Hwan Kim, Cheoleun Moon, Jeonghwan Choi, Ikjun Yeom
2016 conf
ICOIN
Gyuhong Choi, Do-hyung Kim, Ikjun Yeom
2016 J jnl
Wirel. Pers. Commun.
Donghyeok An, Honguk Woo, Chilgee Lee, Ikjun Yeom
2015 J jnl
Wirel. Pers. Commun.
Euiyul Ko, Do-hyung Kim, Hanjin Park, Ikjun Yeom, Euiseong Seo
2015 conf
ICOIN
Jongmin Lee, Donghyeok An, Ikjun Yeom
2015 conf
ICOIN
SunWook Nam, Do-hyung Kim, Ikjun Yeom
2015 conf
ICITCS
Seunghoe Gu, Jong-Hwan Kim, Younghoon Kim, Cheoleun Moon, Ikjun Yeom
2015 conf
ICOIN
Seongyun Jeong, Younghoon Kim, Donghyeok An, Ikjun Yeom
2015 conf
ICN
Do-hyung Kim, SunWook Nam, Jun Bi, Ikjun Yeom
2015 J jnl
Wirel. Pers. Commun.
Cheoleun Moon, Yusung Kim, Do-hyung Kim, Hyunsoo Yoon, Ikjun Yeom
2015 J jnl
Int. J. Commun. Syst.
Do-hyung Kim, Jong-Hwan Kim, Yusung Kim, Hyunsoo Yoon, Ikjun Yeom
2015 J jnl
Wirel. Pers. Commun.
Hanjin Park, Yusung Kim, Euiyul Ko, Ikjun Yeom
2015 J jnl
Inf. Sci.
Younghoon Kim, Yusung Kim, Hyunsoo Yoon, Ikjun Yeom
2015 J jnl
J. Netw. Comput. Appl.
Younghoon Kim, Ikjun Yeom, Jun Bi, Yusung Kim
2014 conf
CoNEXT Student Workshop
Sugi Lee, Yusung Kim, Younghoon Kim, Ikjun Yeom
2014 conf
INFOCOM Workshops
Yusung Kim, Younghoon Kim, Ikjun Yeom
2014 J jnl
Wirel. Pers. Commun.
Donghyeok An, Yusung Kim, Hyunsoo Yoon, Ikjun Yeom
2013 J jnl
Comput. Networks
Donghyeok An, Honguk Woo, Hyunsoo Yoon, Ikjun Yeom
2013 J jnl
Comput. Networks
Yusung Kim, Ikjun Yeom
2013 B conf
ICNP
Younghoon Kim, Yusung Kim, Ikjun Yeom
2012 J jnl
Int. J. Commun. Syst.
Euiyul Ko, Donghyeok An, Ikjun Yeom, Hyunsoo Yoon
2012 conf
ICN
Do-hyung Kim, Jong-Hwan Kim, Yusung Kim, Hyunsoo Yoon, Ikjun Yeom
2011 J jnl
IEEE Commun. Lett.
Do-hyung Kim, Jong-Hwan Kim, Hyunsoo Yoon, Ikjun Yeom
2011 J jnl
IEEE Trans. Parallel Distributed Syst.
Jong-Hwan Kim, Hyunsoo Yoon, Ikjun Yeom
2011 conf
StudentWorkshop@CoNEXT
Donghyeok An, Yusung Kim, Hyunsoo Yoon, Ikjun Yeom
2010 conf
SimuTools
Euiyul Ko, Hanjin Park, Ikjun Yeom
2010 J jnl
IEEE Trans. Veh. Technol.
Janghwan Lee, Hyunsoo Yoon, Ikjun Yeom
2010 J jnl
Comput. Commun.
Sungwon Han, Euiyul Ko, Hyunsoo Yoon, Ikjun Yeom
2009 J jnl
IEEE Commun. Lett.
Jinkyu Lee, Ikjun Yeom
2009 J jnl
Comput. Commun.
Seungwoon Kim, Minwook Lee, Ikjun Yeom
2009 J jnl
IEEE Commun. Lett.
Jong-Hwan Kim, Hyunsoo Yoon, Ikjun Yeom
2008 B conf
MASS
Janghwan Lee, Ikjun Yeom
2008 J jnl
Comput. Networks
Changhan Kim, Younghoon Kim, Jae-Heon Yang, Ikjun Yeom
2008 B conf
MASS
Sungwon Han, Euiyul Ko, Ikjun Yeom
2008 conf
ICC
Euiyul Ko, Donghyeok An, Ikjun Yeom
2008 J jnl
IEEE Trans. Veh. Technol.
Sehoon Kim, Jinkyu Lee, Ikjun Yeom
2008 B conf
WCNC
Sehoon Kim, Jinkyu Lee, Ikjun Yeom
2008 J jnl
IEEE Trans. Parallel Distributed Syst.
Jong-Hwan Kim, Ikjun Yeom
2007 conf
VTC Fall
Jinkyu Lee, Sehoon Kim, Ikjun Yeom
2007 J jnl
IEICE Trans. Commun.
Changhan Kim, Jae-Heon Yang, Ikjun Yeom
2007 conf
VTC Fall
Cheoleun Moon, Sookhyun Yang, Ikjun Yeom
2007 J jnl
IEEE Commun. Lett.
Seungwoon Kim, Ikjun Yeom
2006 J jnl
IEEE Trans. Consumer Electron.
Euiyul Ko, Ikjun Yeom
2006 J jnl
Comput. Commun.
Ikjun Yeom
2006 J jnl
IEEE Trans. Consumer Electron.
Sungwon Han, Ikjun Yeom
2004 J jnl
IEICE Trans. Inf. Syst.
Kyoung-Chul Kim, Ikjun Yeom, Joonwon Lee
2002 J jnl
IEEE Commun. Lett.
Ikjun Yeom, A. L. Narasimha Reddy
2001 B conf
GLOBECOM
Ikjun Yeom, A. L. Narasimha Reddy
2001 J jnl
Multim. Tools Appl.
Ikjun Yeom, A. L. Narasimha Reddy
2001 J jnl
Comput. Commun.
Ikjun Yeom, A. L. Narasimha Reddy
2001 J jnl
IEEE/ACM Trans. Netw.
Ikjun Yeom, A. L. Narasimha Reddy
1999 conf
ICMCS, Vol. 2
Ikjun Yeom, A. L. Narasimha Reddy
notebooks/redb-clickhouse-TEST.ipynb
← Index notebooks/redb-clickhouse-TEST.ipynb plaintext
Truncated preview: showing the first 16384 bytes out of 5988848 total.
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Definitions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import clickhouse_connect"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "ch_TEST_client = clickhouse_connect.get_client(host='e.rationaledge.io', port=443, username='default', password='werioubTGwvf0-dsbv_', database='redb', verify=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "ch_TEST_BETA_client = clickhouse_connect.get_client(host='k.rationaledge.io', port=443, username='default', password='werioubTGwvf0-dsbv_', database='default', verify=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<bound method HttpClient.close_connections of <clickhouse_connect.driver.httpclient.HttpClient object at 0x105fd64d0>>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ch_TEST_BETA_client.close_connections"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<clickhouse_connect.driver.summary.QuerySummary at 0x11f900810>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ch_TEST_BETA_client.command(\"\"\"\n",
    "RENAME DATABASE redb TO orig_redb;\n",
    "\"\"\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## DB Creation (schema 2025-08-02)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "ch_TEST_client.command(\"\"\"\n",
    "CREATE DATABASE IF NOT EXISTS redb;\n",
    "\"\"\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Define General Tables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "### CREATE FULL REDB DATABASE\n",
    "def create_redb_with_all_tables(client):\n",
    "    client.command(\"\"\"\n",
    "        CREATE DATABASE IF NOT EXISTS redb\n",
    "    \"\"\")\n",
    "    create_all_general_tables(client)\n",
    "    create_all_pe_tables(client)\n",
    "\n",
    "#### CREATE FULL TABLES\n",
    "def create_all_general_tables(client):\n",
    "    create_basic_properties_dbtable(client)\n",
    "    create_hashes_dbtable(client)\n",
    "    create_capa_dbtable(client)\n",
    "    create_die_dbtable(client)\n",
    "    create_extra_findings_dbtable(client)\n",
    "\n",
    "\n",
    "##################################\n",
    "#### CREATE INDIVIDUAL TABLES ####\n",
    "##################################\n",
    "\n",
    "#### GENERAL TABLES ####\n",
    "# All tables have SETTINGS index_granularity = 8192\n",
    "def create_basic_properties_dbtable(client):\n",
    "    # Create samples_metadata table\n",
    "    client.command(\"\"\"\n",
    "        CREATE TABLE IF NOT EXISTS redb_basic_properties (\n",
    "            sha256 FixedString(64), -- primary key\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            filename Nullable(String),\n",
    "            sample_name String,\n",
    "            filesize UInt64,\n",
    "            file_entropy Float64,\n",
    "            filetype LowCardinality(String),\n",
    "            filetype_mime LowCardinality(String),\n",
    "            filetype_magika LowCardinality(String),\n",
    "            analysis_date DateTime64(3, 'UTC'),\n",
    "        ) ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        PRIMARY KEY (sha256)\n",
    "        ORDER BY (sha256)\n",
    "    \"\"\")\n",
    "\n",
    "def create_hashes_dbtable(client):\n",
    "    # Create hashes table\n",
    "    client.command(\"\"\"\n",
    "        CREATE TABLE IF NOT EXISTS redb_hashes (\n",
    "            sha256 FixedString(64), -- primary key\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            ssdeep_hash Nullable(String),\n",
    "            tlsh_hash Nullable(String),\n",
    "            authentihash Nullable(String),\n",
    "            imphash Nullable(String),\n",
    "            impfuzzy Nullable(String),\n",
    "            typerefhash Nullable(String),\n",
    "            richhash Nullable(String),\n",
    "            richpe_hash Nullable(String),\n",
    "            richpv_hash Nullable(String),\n",
    "            richpv_hash_sorted Nullable(String),\n",
    "            dhash Nullable(String),\n",
    "            analysis_date DateTime64(3, 'UTC')\n",
    "        ) ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        PRIMARY KEY (sha256)\n",
    "        ORDER BY (sha256)\n",
    "    \"\"\")\n",
    "\n",
    "def create_capa_dbtable(client):\n",
    "    # Create sample_capabilities table\n",
    "    client.command(\"\"\"\n",
    "        SET enable_json_type = 1;\n",
    "    \"\"\")\n",
    "    client.command(\"\"\"\n",
    "        -- Base table for CAPA analysis results\n",
    "        CREATE TABLE IF NOT EXISTS redb_capa (\n",
    "            sha256 FixedString(64),\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            analysis_date DateTime64(3, 'UTC'),\n",
    "            -- Store full JSON dumps as strings for flexibility\n",
    "            capa_dump JSON CODEC(ZSTD(3)),\n",
    "            attack_dump JSON CODEC(ZSTD(3)),\n",
    "            mbc_dump JSON CODEC(ZSTD(3))\n",
    "        ) ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        ORDER BY sha256;\n",
    "    \"\"\")\n",
    "\n",
    "    client.command(\"\"\"\n",
    "        -- Normalized table for capabilities and namespaces\n",
    "        CREATE TABLE IF NOT EXISTS redb_capa_capabilities (\n",
    "            sha256 FixedString(64),\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            analysis_date DateTime64(3, 'UTC'),\n",
    "            namespace LowCardinality(String),\n",
    "            capability LowCardinality(String)\n",
    "        ) ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        ORDER BY (sha256, namespace, capability);\n",
    "    \"\"\")\n",
    "\n",
    "    client.command(\"\"\"\n",
    "        -- Materialized view for capability statistics\n",
    "        CREATE MATERIALIZED VIEW IF NOT EXISTS redb_capa_capabilities_stats (\n",
    "            namespace LowCardinality(String),\n",
    "            capability LowCardinality(String),\n",
    "            samples_bitmap AggregateFunction(groupBitmap, UInt64),\n",
    "            occurrence_count UInt64\n",
    "        ) ENGINE = AggregatingMergeTree()\n",
    "        ORDER BY (namespace, capability)\n",
    "        AS SELECT\n",
    "            namespace,\n",
    "            capability,\n",
    "            groupBitmapState(cityHash64(sha256)) as samples_bitmap,\n",
    "            count() as occurrence_count\n",
    "        FROM redb_capa_capabilities\n",
    "        GROUP BY namespace, capability;\n",
    "    \"\"\")\n",
    "\n",
    "    client.command(\"\"\"\n",
    "        -- Normalized table for MITRE ATT&CK mappings\n",
    "        CREATE TABLE IF NOT EXISTS redb_capa_attack (\n",
    "            sha256 FixedString(64),\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            analysis_date DateTime64(3, 'UTC'),\n",
    "            tactic LowCardinality(String),\n",
    "            technique LowCardinality(String),\n",
    "            technique_id LowCardinality(String)\n",
    "        ) ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        ORDER BY (sha256, tactic, technique_id);\n",
    "    \"\"\")\n",
    "\n",
    "    client.command(\"\"\"\n",
    "        -- Materialized view for ATT&CK statistics\n",
    "        CREATE MATERIALIZED VIEW IF NOT EXISTS redb_capa_attack_stats (\n",
    "            tactic LowCardinality(String),\n",
    "            technique LowCardinality(String),\n",
    "            technique_id LowCardinality(String),\n",
    "            samples_bitmap AggregateFunction(groupBitmap, UInt64),\n",
    "            occurrence_count UInt64\n",
    "        ) ENGINE = AggregatingMergeTree()\n",
    "        ORDER BY (tactic, technique_id)\n",
    "        AS SELECT\n",
    "            tactic,\n",
    "            technique,\n",
    "            technique_id,\n",
    "            groupBitmapState(cityHash64(sha256)) as samples_bitmap,\n",
    "            count() as occurrence_count\n",
    "        FROM redb_capa_attack\n",
    "        GROUP BY tactic, technique, technique_id;\n",
    "    \"\"\")\n",
    "\n",
    "    client.command(\"\"\"\n",
    "        -- Normalized table for MBC mappings\n",
    "        CREATE TABLE IF NOT EXISTS redb_capa_mbc (\n",
    "            sha256 FixedString(64),\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            analysis_date DateTime64(3, 'UTC'),\n",
    "            objective LowCardinality(String),\n",
    "            behavior LowCardinality(String),\n",
    "            behavior_id LowCardinality(String)\n",
    "        ) ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        ORDER BY (sha256, objective, behavior_id);\n",
    "    \"\"\")\n",
    "\n",
    "    client.command(\"\"\"\n",
    "        -- Materialized view for MBC statistics\n",
    "        CREATE MATERIALIZED VIEW IF NOT EXISTS redb_capa_mbc_stats (\n",
    "            objective LowCardinality(String),\n",
    "            behavior LowCardinality(String),\n",
    "            behavior_id LowCardinality(String),\n",
    "            samples_bitmap AggregateFunction(groupBitmap, UInt64),\n",
    "            occurrence_count UInt64\n",
    "        ) ENGINE = AggregatingMergeTree()\n",
    "        ORDER BY (objective, behavior_id)\n",
    "        AS SELECT\n",
    "            objective,\n",
    "            behavior,\n",
    "            behavior_id,\n",
    "            groupBitmapState(cityHash64(sha256)) as samples_bitmap,\n",
    "            count() as occurrence_count\n",
    "        FROM redb_capa_mbc\n",
    "        GROUP BY objective, behavior, behavior_id;\n",
    "    \"\"\")\n",
    "\n",
    "def create_die_dbtable(client):\n",
    "    # Create sample_die table\n",
    "    client.command(\"\"\"\n",
    "        SET enable_json_type = 1;\n",
    "    \"\"\")\n",
    "    client.command(\"\"\"\n",
    "        CREATE TABLE IF NOT EXISTS redb_die (\n",
    "            sha256 FixedString(64),\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            die_info JSON CODEC(ZSTD(3)),\n",
    "            analysis_date DateTime64(3, 'UTC')\n",
    "        ) ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        PRIMARY KEY (sha256)\n",
    "        ORDER BY (sha256)\n",
    "    \"\"\")\n",
    "\n",
    "    client.command(\"\"\"\n",
    "        CREATE MATERIALIZED VIEW redb_die_mv\n",
    "        (\n",
    "            sha256 FixedString(64),\n",
    "            md5 FixedString(32),\n",
    "            sha1 FixedString(40),\n",
    "            analysis_date DateTime64(3, 'UTC'),\n",
    "            compiler LowCardinality(Nullable(String)),\n",
    "            compiler_full Nullable(String),\n",
    "            format LowCardinality(Nullable(String)),\n",
    "            format_full Nullable(String),\n",
    "            installer LowCardinality(Nullable(String)),\n",
    "            installer_full Nullable(String),\n",
    "            joiner LowCardinality(Nullable(String)),\n",
    "            joiner_full Nullable(String),\n",
    "            language LowCardinality(Nullable(String)),\n",
    "            language_full Nullable(String),\n",
    "            library LowCardinality(Nullable(String)),\n",
    "            library_full Nullable(String),\n",
    "            linker LowCardinality(Nullable(String)),\n",
    "            linker_full Nullable(String),\n",
    "            operation_system LowCardinality(Nullable(String)),\n",
    "            operation_system_full Nullable(String),\n",
    "            packer LowCardinality(Nullable(String)),\n",
    "            packer_full Nullable(String),\n",
    "            protector LowCardinality(Nullable(String)),\n",
    "            protector_full Nullable(String),\n",
    "            sfx LowCardinality(Nullable(String)),\n",
    "            sfx_full Nullable(String),\n",
    "            sign_tool LowCardinality(Nullable(String)),\n",
    "            sign_tool_full Nullable(String),\n",
    "            stub LowCardinality(Nullable(String)),\n",
    "            stub_full Nullable(String),\n",
    "            tool LowCardinality(Nullable(String)),\n",
    "            tool_full Nullable(String),   \n",
    "            -- overlay JSON CODEC(ZSTD(3)),\n",
    "            -- resource JSON CODEC(ZSTD(3)),\n",
    "            has_overlay UInt8,\n",
    "            has_resources UInt8,\n",
    "            is_packed UInt8\n",
    "        )\n",
    "        ENGINE = ReplacingMergeTree(analysis_date)\n",
    "        ORDER BY (sha256)\n",
    "        POPULATE\n",
    "        AS SELECT\n",
    "            sha256,\n",
    "            md5,\n",
    "            sha1,\n",
    "            analysis_date,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'compiler'), '') AS compiler,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'compiler(full)'), '') AS compiler_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'format'), '') AS format,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'format(full)'), '') AS format_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'installer'), '') AS installer,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'installer(full)'), '') AS installer_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'joiner'), '') AS joiner,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'joiner(full)'), '') AS joiner_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'language'), '') AS language,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'language(full)'), '') AS language_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'library'), '') AS library,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'library(full)'), '') AS library_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'linker'), '') AS linker,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'linker(full)'), '') AS linker_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'operation_system'), '') AS operation_system,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'operation_system(full)'), '') AS operation_system_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'packer'), '') AS packer,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'packer(full)'), '') AS packer_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'protector'), '') AS protector,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'protector(full)'), '') AS protector_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'sfx'), '') AS sfx,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'sfx(full)'), '') AS sfx_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'sign_tool'), '') AS sign_tool,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'sign_tool(full)'), '') AS sign_tool_full,\n",
    "            nullIf(JSONExtractString(toString(die_info), 'stub'), '') AS stub,\n",
    "            nullIf(JSONExtractString(toString(die_info),