Skip to main content

Charger des donnees oracle vers Elasticsearch / Load data from oracle to Elasticsearch

Project description

Oracle_river - transfert de donnees depuis oracle vers elasticsearch en SQL incrémental
=======================================================================================

Ce module permet de recuperer des requetes SQL en mode incremental dans une base de donnees Oracle et de les stocker
sous format JSON dans elasticsearch.
L incrémental des données sera gere via une base MySQL (date de derniere execution)

Vous pouvez l'installer avec pip:

pip install oracle_river

si vous rencontrez un message d erreur c est probablement que vous n avez pas le module pyelasticsearch
qui sert de dépendance à oracle_river.
Installez le et reitérez la commande pip install oracle_river


|Oracle| => SQL incremental + serialisation JSON => | elasticsearch |


Exemple d'usage:

1) CREER UNE BASE MYSQL
creez une base au nom de votre choix
creez une table histo_connexion avec le format ci-dessous:
ID_CONNEXION / NOM_BASE / NOM_SCHEMA / DTM_DERNIERE_EXEC
autoincrement/string 256/string256 /Timestamp


2) REALISER LES IMPORTS :

creez un fichier python .py dans lequel vous inscrivez les lignes de codes suivantes :
(vous devez au préalable installer les API de connexion cx_Oralce et mysql.connector)

#!/usr/bin/env python
# coding: utf-8

from datetime import datetime
import cx_Oracle
import mysql.connector
from pyelasticsearch import ElasticSearch
from oracle_river import Load_Data

3) DEFINIR LES PARAMETRES DE CONNEXION:

# ouverture de la connexion à la base oracle
DB = 'pythonhol/welcome@127.0.0.1/orcl' (voir http://www.oracle.com/technetwork/articles/dsl/python-091105.html)
OracleCnx = cx_Oracle.connect(DB)
# paramètres de connexion elasticseach
es = ElasticSearch('http://localhost:9200/')
# ouverture de la connexion MySQL
MySQLCnx = mysql.connector.connect(user='root', password='', host='localhost', database='elasticsearch_river')

4) PREPARER LA REQUETE:

renseignez les paramètre ci-dessous :

NomTable = 'CUSTOMER' (pour la base d'administration MySql)
DtmInit = '2013-09-01 00:00:00' (si vous executez la requete pour la première fois)
DocType = 'CUSTOMER_ID' (clé primaire de la table oracle utilisé comme type d index sur elasticsearch)
Index = 'dbcustomer' (pour elasticsearch, minuscules obligatoire par elasticsearch)
NomBase = 'DBBUSINESS' (pour la base d'administration MySql)
NomSchema = 'ACTIVITY' (pour la base d'administration MySql)
Query = ("SELECT * FROM ACTIVITY.CUSTOMER WHERE CREATION_DTM >= to_timestamp('\
{0}', 'YYYY-MM-DD HH24:MI:SS') OR LAST_UPDATE_DTM>= to_timestamp('\
{0}', 'YYYY-MM-DD HH24:MI:SS')")# les paramétres s'écrivent comme cela : "{0},{1},{n}".format(valeur0, valeur1, valeurn)

5) EXECUTER LA REQUETE VIA LA FONCTION PRESENTE DANS LE MODULE:

Load_Data(MySQLCnx, es, OracleCnx, Query, DtmInit, DocType, Index, NomBase, NomSchema, NomTable)

la requete defini plus haut va s executer et les donnees vont etre transferees a elasticseearch
par morceaux via le protocol http

Ce code est sous licence WTFPL.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oracle_river-1.0.2.zip (36.2 kB view details)

Uploaded Source

File details

Details for the file oracle_river-1.0.2.zip.

File metadata

  • Download URL: oracle_river-1.0.2.zip
  • Upload date:
  • Size: 36.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for oracle_river-1.0.2.zip
Algorithm Hash digest
SHA256 3e2edcd208b8d62d4a782c42c4091848a7cba48a75c0ed844833a1a1e207e4b5
MD5 b6ae0a82a790e822e07fa035e87ca2f7
BLAKE2b-256 9d7188423fff1faa84deb70c5217688e050e2002ded45a4a219d626c2883def9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page