Un experimento con datos: Base de datos del CNE (parte 1)

vamos a realizar un triple experimento; en este caso, vamos primero a migrar la tabla de electores del CNE a mysql, para ello contamos con el acceso publico a los CSV (archivos coma-separados) de todos los electores de las pasadas elecciones presidenciales; para ello debemos descargar de la siguiente página:

http://www.cne.gob.ve/int_generacion_re/definitivo_05oct/index.html

Migración de archivos CSV a mySQL:
Descarga:
una serie de archivos coma separados, comprimidos en zip, uno por estado; como es bastante engorroso trabajar de uno en uno, entonces simplemente procedemos a unificarlos.

Primer paso, normalización:
En primer lugar, los CSV estan en iso (aunque pareciera UCS de Oracle), los archivos vienen divididos en estados; procedemos a conjugarlos en un unico archivo de la siguiente manera:
creo una carpeta CNE y descargo todos los archivos ahi:

>mkdir cne && cd cne

descomprimimos todos los archivos:

>unzip *

y procedemos a unirlos en un solo archivo:

>cat * > datacne.csv

Segundo paso: creación de la DB y las tablas:
nos conectamos y creamos la db CNE:

>mysql -u root -p

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.33-log Source distribution

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql>create database cne;

y la usamos:

mysql> use cne

ahora, creamos la tabla de registros del CNE:

mysql>CREATE TABLE `electores` (
  `nacionalidad` char(1) NOT NULL default ‘V’,
  `cedula` int(8) NOT NULL default ‘0’,
  `nombre` varchar(128) default ”,
  `cod_elector` int(50) default ‘0’,
  `fecha_nac` datetime default NULL,
  PRIMARY KEY  (`nacionalidad`,`cedula`),
  UNIQUE KEY `idx_venezolano` (`nacionalidad`,`cedula`),
  KEY `idx_cedula` (`cedula`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PACK_KEYS=1;

Observe que hemos creado un index unico llamado idx_venezolano, que incluye:
UNIQUE KEY `idx_venezolano` (`nacionalidad`,`cedula`)
Esto mejora notablemente las busquedas por cedula y nacionalidad.

Tercer paso: carga de datos:
y procedemos a cargar el archivo del cne arriba unificado:

mysql>LOAD DATA LOCAL INFILE ‘/home/webapp/datacne.csv’
IGNORE INTO TABLE electores
FIELDS TERMINATED BY ‘;’ ENCLOSED BY ”
LINES STARTING BY ” TERMINATED BY ‘\n’
IGNORE 2 LINES
(nacionalidad, cedula, nombre, cod_elector, @fecha_tmp)
SET fecha_nac = DATE_FORMAT(@fecha_tmp, ‘%Y-%m-%d’);

El ignore 2 lines es porque vienen con un horrible encabezado que hubo que removerlo de cada archivo CSV.

cuando haya cargado, probamos que han cargado los registros:

Cuarto paso: prueba de carga:

mysql> select nombre, fecha_nac from electores where cedula = 13264658;

+———————————+———————+
| nombre                          | fecha_nac           |
+———————————+———————+
| LARA GIMENEZ JESUS IGNACIO JOSE | 1978-10-23 00:00:00 |
+———————————+———————+

1 row in set (0.12 sec)

Ahora, vamos por la otra tabla.

Acerca de phenobarbital

http://about.me/phenobarbital

Publicado el 13 mayo 2007 en Linux, PlanetaLinux. Añade a favoritos el enlace permanente. 5 comentarios.

  1. Podrás subir los CSV a un servidor como megaupload, ya que el link que pones en el blog ya no está disponible desde la web del CNE, Saludos!

    PD: Por cierto, una joya de blog, Felicidades!

  2. buenas amigo el link que pones dice que no esta disponible hay algun otro modo?? gracias y saludos!

  3. Raimundo Araujo

    Buenas amigo, me gustaría descargar la base de datos del padrón electoral del 2010, ya que la del 2012 no tiene la columna de fecha de nacimiento, donde la puedo descargar?

    • No creo que esté ya en el CNE, y vi esa incongruencia de eliminar la fecha de nacimiento del padrón …
      Habrá que buscar en Internet en archive.com ú otros históricos a ver si esa data quedó “flotando” por allí …

  4. Hola amigo, quisiera preguntarte algo. Sabes que en la página del CNE está la base de datos del CNE completa, incluso los fallecidos, o’sea si introducimos la cédula nº 1 nos dice quien era el dueño, y si introducimos la cédulo de alguien que no se ha inscrito en el CNE, ella lo identifica. Yo quisiera descargar de alguna manera esa base de datos, el nombre de todos los cedulados desde C.I nº1 en adelante, yo se que está en la página del cne y debe de haber alguna manera de acceder a ella. La que el CNE coloca para descargar solo tiene los actuales votantes. Bueno hace tiempo un hacker llamado Jhon Debian hizo una base de datos bastante buena, pero esta no incluía a todos los cedulados… si sabes algo agradecería tu ayuda.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: