Serialização é o processo de converter um objeto, estrutura de dados ou estado de uma aplicação em um formato que pode ser armazenado ou transmitido e posteriormente reconstruído. Em outras palavras, a serialização transforma dados complexos em uma sequência de bytes ou em um formato específico (como JSON, XML, ou um arquivo binário), permitindo que esses dados sejam salvos em disco, enviados pela rede ou passados entre diferentes componentes de um sistema.



Vantagens da Serialização
Persistência de dados Armazenar o estado de um objeto ou estrutura de dados em um arquivo ou banco de dados para uso posterior.
Comunicação entre processos Enviar dados entre diferentes processos em uma mesma máquina ou em máquinas diferentes através de redes.
Troca de dados entre sistemas diferentes Por exemplo, enviar dados de uma aplicação Python para uma aplicação Java usando um formato comum como JSON.

 Libs:

Linguagem Bibliotecas Função
Python Pickle Serialização

with open('data.pkl', 'wb') as file:

pickle.dump(data, file)

Desserialização

with open('data.pkl', 'rb') as file:
loaded_data = pickle.load(file)

Julia Serialization Serialização

serialize("data.jls", data)

Desserialização

deserialize("data.jls")

JLD2 Serialização

@save "data.jld2" data

Desserialização

@load "data.jld2" data

 

OBSERVAÇÕES

  • Em Julia, nos testes realizados, a biblioteca Serialization apresentou um melhor desempenho de compactação que a biblioteca JLD2.
  • A biblioteca Pickle, do Python, apresentou um melhor desempenho de compactação que as bibliotecas de Julia, Serialization e JLD2.
  • Se for descompactar um arquivo de dataframe (CSV, XLSX, etc) é necessário importar as bibliotecas para trabalhar com tabelas:
    • Pandas, no Python.
    • DataFrames e CSV, em Julia.

Python

import pickle

data = {"name": "Alice", "age": 30}

# Serialização (transforma em bytes)
with open('data.pkl', 'wb') as file:
    pickle.dump(data, file)

# Desserialização (reconstrói o objeto)
with open('data.pkl', 'rb') as file:
    loaded_data = pickle.load(file)

Julia

""" Método 1 da biblioteca Serialization """

using Serialization

data = Dict("name" => "Alice", "age" => 30)

# Serialização
serialize("data.jls", data)

# Desserialização
loaded_data = deserialize("data.jls")

""" Método 2 da biblioteca Serialization """

using Serialization

data = Dict("name" => "Alice", "age" => 30)

# Serialização
open("data.bin", "w") do f
    serialize(f, data)
end

# Desserialização
loaded_data = open("data.bin", "r") do f
    deserialize(f)
end

using JLD2

data = Dict("name" => "Alice", "age" => 30)

# Serialização
@save "data.jld2" data

# Desserialização
@load "data.jld2" data