Ingrid Nunes

108 papers A 11B 5C 3Misc 2Journal 47Unranked 37
YearRankTypeTitle / Venue / Authors
2025 J jnl
Empir. Softw. Eng.
Nicole Davila, Ingrid Nunes, Igor Wiese
2025 J jnl
J. Syst. Softw.
Eduardo Witter dos Santos, Ingrid Nunes, Dietmar Jannach
2024 J jnl
CoRR
João Guilherme Faccin, Ingrid Nunes, Abdelwahab Hamou-Lhadj
2024 conf
ICSE-SEIP
Nicole Davila, Igor Wiese, Igor Steinmacher, Lucas Lucio da Silva, Andre Kawamoto, Gilson Jose Peres Favaro, Ingrid Nunes
2023 J jnl
CoRR
Jhonny Mertz, Ingrid Nunes
2023 J jnl
J. Syst. Softw.
Jhonny Mertz, Ingrid Nunes
2023 J jnl
CoRR
Eduardo Witter dos Santos, Ingrid Nunes, Dietmar Jannach
2022 J jnl
CoRR
Rômulo Manciola Meloca, Ingrid Nunes
2022 J jnl
Empir. Softw. Eng.
Rômulo Manciola Meloca, Ingrid Nunes
2022 J jnl
CoRR
Keyur Patel, João Guilherme Faccin, Abdelwahab Hamou-Lhadj, Ingrid Nunes
2022 J jnl
Empir. Softw. Eng.
Keyur Patel, João Guilherme Faccin, Abdelwahab Hamou-Lhadj, Ingrid Nunes
2021 J jnl
CoRR
Nicole Davila, Ingrid Nunes
2021 J jnl
J. Syst. Softw.
Nicole Davila, Ingrid Nunes
2021 ed.
ACSOS-C
Esam El-Araby, Vana Kalogeraki, Danilo Pianini, Frédéric Lassabe, Barry Porter, Sona Ghahremani, Ingrid Nunes, Mohamed Bakhouya, Sven Tomforde
2021 ed.
ACSOS
Esam El-Araby, Vana Kalogeraki, Danilo Pianini, Frédéric Lassabe, Barry Porter, Sona Ghahremani, Ingrid Nunes, Mohamed Bakhouya, Sven Tomforde
2021 J jnl
Comput. Networks
Frederico Schardong, Ingrid Nunes, Alberto Schaeffer-Filho
2021 J jnl
IEEE Softw.
Jhonny Mertz, Ingrid Nunes, Luca Della Toffola, Marija Selakovic, Michael Pradel
2021 J jnl
J. Syst. Softw.
Jhonny Mertz, Ingrid Nunes
2021 J jnl
CoRR
Jhonny Mertz, Ingrid Nunes
2020 J jnl
CoRR
Jhonny Mertz, Ingrid Nunes
2020 J jnl
CoRR
Ingrid Nunes, Dietmar Jannach
2020 J jnl
CoRR
Jhonny Mertz, Ingrid Nunes
2020 J jnl
CoRR
Ingrid Nunes, Phillip Taylor, Lina Barakat, Nathan Griffiths, Simon Miles
2020 conf
ACSOS Companion
Mirko D'Angelo, Sona Ghahremani, Simos Gerasimou, Johannes Grohmann, Ingrid Nunes, Sven Tomforde, Evangelos Pournaras
2020 J jnl
CoRR
Mirko D'Angelo, Sona Ghahremani, Simos Gerasimou, Johannes Grohmann, Ingrid Nunes, Sven Tomforde, Evangelos Pournaras
2020 J jnl
CoRR
Fernando dos Santos, Ingrid Nunes, Ana L. C. Bazzan
2020 J jnl
Simul. Model. Pract. Theory
Fernando dos Santos, Ingrid Nunes, Ana L. C. Bazzan
2020 J jnl
CoRR
Jhonny Mertz, Ingrid Nunes, Luca Della Toffola, Marija Selakovic, Michael Pradel
2020 conf
SBCARS
Gabriel Pereira, Ingrid Nunes, Marcelo Pimenta
2020 A conf
MSR
Ingrid Nunes, Christoph Treude, Fabio Calefato
2020 J jnl
CoRR
Ingrid Nunes, Christoph Treude, Fabio Calefato
2020 J jnl
CoRR
Jhonny Mertz, Ingrid Nunes
2019 J jnl
Int. J. Hum. Comput. Stud.
Ingrid Nunes, Phillip Taylor, Lina Barakat, Nathan Griffiths, Simon Miles
2019 conf
ABIS@HT
Dietmar Jannach, Michael Jugovac, Ingrid Nunes
2019 conf
SEAMS@ICSE
Mirko D'Angelo, Simos Gerasimou, Sona Ghahremani, Johannes Grohmann, Ingrid Nunes, Evangelos Pournaras, Sven Tomforde
2019 conf
SEAMS@ICSE
Jhonny Mertz, Ingrid Nunes
2018 J jnl
Softw. Pract. Exp.
Jhonny Mertz, Ingrid Nunes
2018 conf
ICPS
Philippe Lalanda, Jhonny Mertz, Ingrid Nunes
2018 conf
SEAMS@ICSE
João Guilherme Faccin, Ingrid Nunes
2018 J jnl
Int. J. Metadata Semant. Ontologies
Tassio Ferenzini Martins Sirqueira, Marx L. Viana, Francisco J. P. Cunha, Ingrid Nunes, Carlos José Pereira de Lucena
2018 A conf
UMAP
Michael Jugovac, Ingrid Nunes, Dietmar Jannach
2018 J jnl
J. Softw. Eng. Res. Dev.
Eduardo Witter dos Santos, Ingrid Nunes
2018 J jnl
Simul. Model. Pract. Theory
Fernando dos Santos, Ingrid Nunes, Ana L. C. Bazzan
2018 B conf
NOMS
Frederico Schardong, Ingrid Nunes, Alberto E. Schaeffer Filho
2018 J jnl
Expert Syst. Appl.
João Guilherme Faccin, Ingrid Nunes
2018 J jnl
Inf. Softw. Technol.
Vanius Zapalowski, Ingrid Nunes, Daltro José Nunes
2018 J jnl
ACM Comput. Surv.
Jhonny Mertz, Ingrid Nunes
2018 conf
SBES
Vanius Zapalowski, Daltro José Nunes, Ingrid Nunes
2018 conf
SBES
Cristiano Werner Araújo, Vanius Zapalowski, Ingrid Nunes
2017 J jnl
IEEE Trans. Software Eng.
Jhonny Mertz, Ingrid Nunes
2017 B conf
IM
Frederico Schardong, Ingrid Nunes, Alberto E. Schaeffer Filho
2017 J jnl
User Model. User Adapt. Interact.
Ingrid Nunes, Dietmar Jannach
2017 J jnl
Eng. Appl. Artif. Intell.
João Guilherme Faccin, Ingrid Nunes
2017 A conf
AAMAS
Deividi Moreira, Fernando dos Santos, Matheus Barbieri, Ingrid Nunes, Ana L. C. Bazzan
2017 C conf
IECON
Jhonny Mertz, Vanius Zapalowski, Philippe Lalanda, Ingrid Nunes
2017 J jnl
J. Netw. Comput. Appl.
Ingrid Nunes, Frederico Schardong, Alberto E. Schaeffer Filho
2017 conf
SBES
Elder Cirilo, Bruno Barbieri Pontes Cafeo, Ingrid Nunes, Alessandro Garcia, Uirá Kulesza, Carlos Lucena
2017 conf
IUI Companion
Dietmar Jannach, Ingrid Nunes, Michael Jugovac
2017 J jnl
Comput. Appl. Eng. Educ.
Danilo Silva, Ingrid Nunes, Ricardo Terra
2017 conf
SBES
Eduardo Witter dos Santos, Ingrid Nunes
2017 A conf
AAMAS
Fernando dos Santos, Ingrid Nunes, Ana L. C. Bazzan
2017 A conf
AAMAS
João Guilherme Faccin, Ingrid Nunes
2017 B conf
FASE
Cristiano Werner Araújo, Ingrid Nunes, Daltro José Nunes
2017 conf
COMPSAC (1)
Fernando dos Santos, Ingrid Nunes, Ana L. C. Bazzan
2017 conf
SBES
Junior Cesar Rocha, Vanius Zapalowski, Ingrid Nunes
2017 conf
MATES
João Guilherme Faccin, Ingrid Nunes, Ana L. C. Bazzan
2016 ed.
EMAS@AAMAS
Matteo Baldoni, Jörg P. Müller, Ingrid Nunes, Rym Zalila-Wenkstern
2016 J jnl
Int. J. Agent Oriented Softw. Eng.
Ingrid Nunes, João Guilherme Faccin
2015 J jnl
Knowl. Eng. Rev.
Ingrid Nunes, Simon Miles, Michael Luck, Carlos José Pereira de Lucena
2015 conf
WI-IAT (2)
João Guilherme Faccin, Ingrid Nunes
2015 J jnl
Eng. Appl. Artif. Intell.
Ingrid Nunes, Simon Miles, Michael Luck, Simone Diniz Junqueira Barbosa, Carlos José Pereira de Lucena
2015 J jnl
Interact. Comput.
Ingrid Nunes, Simone D. J. Barbosa, Donald D. Cowan, Simon Miles, Michael Luck, Carlos José Pereira de Lucena
2014 conf
EMAS@AAMAS
Ingrid Nunes
2014 A conf
ECAI
Ingrid Nunes, Simon Miles, Michael Luck, Simone Diniz Junqueira Barbosa, Carlos José Pereira de Lucena
2014 B conf
SPLC
Jacob Stein, Ingrid Nunes, Elder Cirilo
2014 A conf
ICPC
Vanius Zapalowski, Ingrid Nunes, Daltro José Nunes
2014 A conf
AAMAS
Ingrid Nunes, Michael Luck
2014 conf
WADT
Marcos Oliveira Jr., Leila Ribeiro, Érika F. Cota, Lucio Mauro Duarte, Ingrid Nunes, Filipe Reis
2013 J jnl
J. Syst. Softw.
Carlos José Pereira de Lucena, Ingrid Nunes
2012 J jnl
J. Syst. Softw.
Elder Cirilo, Ingrid Nunes, Uirá Kulesza, Carlos José Pereira de Lucena
2012 A conf
UMAP
Ingrid Nunes, Simon Miles, Michael Luck, Carlos José Pereira de Lucena
2012 conf
IPAW
Ingrid Nunes, Yuhui Chen, Simon Miles, Michael Luck, Carlos José Pereira de Lucena
2012 conf
SBIA
Ingrid Nunes, Simon Miles, Michael Luck, Carlos José Pereira de Lucena
2012 A conf
AAMAS
Ingrid Nunes, Simon Miles, Michael Luck, Carlos José Pereira de Lucena
2011 conf
VariComp@AOSD
Elder Cirilo, Ingrid Nunes, Alessandro F. Garcia, Carlos J. P. Lucena
2011 J jnl
Int. J. Agent Oriented Softw. Eng.
Ingrid Nunes, Carlos José Pereira de Lucena, Donald D. Cowan, Uirá Kulesza, Paulo S. C. Alencar, Camila Nunes
2011 conf
AAMAS Workshops
Ingrid Nunes, Michael Luck, Simone Diniz Junqueira Barbosa, Simon Miles, Carlos José Pereira de Lucena
2010 conf
AOSE
Ingrid Nunes, Donald D. Cowan, Elder Cirilo, Carlos José Pereira de Lucena
2010 conf
ISoLA (1)
Donald D. Cowan, Paulo S. C. Alencar, Fred McGarry, Carlos José Pereira de Lucena, Ingrid Nunes
2010 C conf
SEKE
Ingrid Nunes, Simone Diniz Junqueira Barbosa, Carlos José Pereira de Lucena
2010 conf
Web Intelligence
Donald D. Cowan, Paulo S. C. Alencar, Fred McGarry, Carlos José Pereira de Lucena, Ingrid Nunes
2010 conf
ISoLA (1)
Ingrid Nunes, Simone Diniz Junqueira Barbosa, Carlos José Pereira de Lucena
2010 A conf
AAMAS
Ingrid Nunes, Ricardo Choren, Camila Nunes, Bruno Fábri, Fernando Silva, Gustavo R. de Carvalho, Carlos José Pereira de Lucena
2009 conf
ICEIS
Ingrid Nunes, Uirá Kulesza, Camila Nunes, Carlos José Pereira de Lucena, Elder Cirilo
2009 conf
AOSE
Ingrid Nunes, Elder Cirilo, Carlos José Pereira de Lucena, Jan Sudeikat, Christian Hahn, Jorge J. Gómez-Sanz
2009 conf
AAMAS (2)
Ingrid Nunes, Uirá Kulesza, Camila Nunes, Carlos José Pereira de Lucena
2009 conf
CRIWG
Bruno Gadelha, Ingrid Nunes, Hugo Fuks, Carlos José Pereira de Lucena
2009 J jnl
J. Univers. Comput. Sci.
Camila Nunes, Uirá Kulesza, Cláudio Sant'Anna, Ingrid Nunes, Alessandro F. Garcia, Carlos José Pereira de Lucena
2009 Misc conf
SAC
Elder Cirilo, Ingrid Nunes, Uirá Kulesza, Camila Nunes, Carlos José Pereira de Lucena
2009 conf
SBES
Elder Cirilo, Ingrid Nunes, Uirá Kulesza, Carlos Lucena
2009 B conf
ICSR
Ingrid Nunes, Carlos José Pereira de Lucena, Donald D. Cowan, Paulo S. C. Alencar
2009 conf
CSMR
Camila Nunes, Uirá Kulesza, Cláudio Sant'Anna, Ingrid Nunes, Alessandro F. Garcia, Carlos José Pereira de Lucena
2009 Misc conf
SAC
Ingrid Nunes, Uirá Kulesza, Camila Nunes, Elder Cirilo, Carlos José Pereira de Lucena
2009 conf
AOSE
Ingrid Nunes, Carlos José Pereira de Lucena, Uirá Kulesza, Camila Nunes
2008 conf
AOSE
Ingrid Nunes, Camila Nunes, Uirá Kulesza, Carlos José Pereira de Lucena
2008 C conf
SEKE
Ingrid Nunes, Uirá Kulesza, Camila Nunes, Carlos José Pereira de Lucena
2008 conf
WebMedia
Ingrid Nunes, Uirá Kulesza, Camila Nunes, Elder Cirilo, Carlos José Pereira de Lucena
2008 conf
SBCARS
Camila Nunes, Uirá Kulesza, Cláudio Sant'Anna, Ingrid Nunes, Carlos José Pereira de Lucena
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),