Extraire des tables de base de données avec CSV [connexion ODBC de R et python]

Que faites-vous lorsque vous souhaitez extraire des données de base de données avec CSV? s'il vous plaît dites-moi à ce sujet si cela ne vous dérange pas! Je ressemble à ça ↓ ↓ ↓

Je veux rendre la table de base de données CSV

Je souhaite convertir le résultat d'une demande d'extraction dans la base de données en écrivant une requête au format CSV.

Les analystes de données internes écrivent du SQL et créent des fichiers à analyser. Il est normal d'assembler avec Excel et de se connecter à ODBC, mais de toute façon, je veux simplement mettre les données dans le logiciel statistique. Je souhaite traiter la logique de calcul numérique et la logique de remplacement telles qu'elles sont du côté du logiciel d'analyse.

Connectez-vous avec ODBC

Il y a quelque chose appelé odbc qui sert d'intermédiaire à la connexion avec la base de données. Laissons les paramètres ODBC et ce qu'il faut faire aux autres sites. Si vous n'êtes pas celui qui configure vous-même la base de données, quelqu'un devrait l'utiliser, alors demandez. Pour le moment, il vous suffit de demander l'adresse IP du serveur de base de données et le pilote de connexion.

La méthode est un lien. Ici ou ODBC C'est aussi ODBC

Réglez "Nom de la source de données" au moment du réglage. Prenez-en note.

Premier du langage R

Vous pouvez installer R en le téléchargeant depuis CRAN, en l'installant et en tapant le script suivant dans l'éditeur R.

Table et script supposés sans bosses

Supposons que vous ayez une table pleine de 6 millions d'enregistrements appelée user_log Il faut énormément de temps pour tout extraire avec un logiciel qui se connecte normalement à la base de données. Si d'autres personnes sont également connectées, il est essentiel que la charge du processeur sur le serveur devienne effrayante et que tout le monde se fâche.

Pour les logiciels qui se connectent à la base de données, j'aime → CSE. Cela peut également être connecté si le nom, l'ID et le passage de la source de données ODBC sont connus.

Fondamentalement, cette composition

library(RODBC)

conn_DB <- odbcConnect("Nom de la source de données", "Identifiant attribué", "Pass qui sera délivré avec la pièce d'identité")
query <- paste0("select count(*) from user_log")
tbl <- sqlQuery(conn_DB, query)
odbcClose(conn_DB)

Tournez ceci avec une instruction FOR.

Vous pouvez d'abord vous connecter à la base de données ci-dessus pour voir le nombre de lignes de la table. Disons que vous pouvez confirmer qu'il est de 6 millions. Si vous essayez de tout retirer en même temps, le processeur du serveur cessera de penser, alors retirez-vous à petite échelle en divisant. Du côté du logiciel d'analyse également, il est possible que la mémoire devienne pleine, il est donc recommandé de l'écrire en détail et de la combiner à la fin.

SEQ<-seq(1,6000000,5000)
LIM<-length(SEQ)-1

conn_DB <- odbcConnect("Nom de la source de données", "Identifiant attribué", "Pass qui sera délivré avec la pièce d'identité")
for(i in 1:LIM){
  query <- paste0(
    "select * from user_log ",
    "limit 5000 offset ",
      as.numeric(SEQ[i])
  )
  tbl <- sqlQuery(conn_DB, query)
  write.csv(tbl, paste0("this_is_",i,"th.csv"), row.names=F)
  Sys.sleep(10)
}
odbcClose(conn_DB)

Explication détaillée et mise en garde

Avec cela, les données pourraient être extraites en les divisant en 5000 enregistrements. Vous pouvez combiner des requêtes écrites en SQL avec paste0. S'il existe un seul symbole de guillemet dans SQL, ajoutez-lui une barre oblique inverse.

where colum = '10'
where colum = \'10\'

Si vous combinez des caractères avec paste0, les sauts de ligne SQL peuvent disparaître, soyez donc prudent lors de l'écriture.

paste0("select * from user_log", "where colum = '10'")
select * from user_logwhere colum = '10'

C'est collé ensemble.

Combinez les données extraites

setwd("chemin du fichier qui crache csv")
lf <- list.files(pattern="csv") 

data <- data.frame()

  for(i in 1:length(lf)){
    add <- fread(lf[i])
    data <- rbind(data,add)
  }

Cela mettra 6 millions de données en données. Veuillez noter que le traitement sera catastrophique si le PC ne dispose pas de suffisamment de mémoire.

N'est-il pas acceptable de rendre chaque csv équivalent à un mini-lot pour l'apprentissage automatique?

édition du langage python

Puisque j'ai expliqué la politique dans une certaine mesure, j'omettrai l'explication à partir de maintenant.

import pyodbc
import numpy as np
import pandas as pd

cnx = pyodbc.connect('DSN=Nom de la source de données; UID=Entrer l'ID; PWD=Insérer une passe')
cursor = cnx.cursor()

list_for = np.arange(1,60000,5000)
list_for=list_for.tolist()

for i in range(len(list_for)):    
    made_que = "SELECT * FROM user_log " + "LIMIT 5000 OFFSET " + str(list_for[i])
    cursor.execute(made_que) 
    tbl = cursor.fetchall()
    array_format = np.array(tbl)
    dataframe_format = pd.DataFrame(array_format)
    dataframe_format.to_csv('csv_data/' + str(i) + '.csv')

c'est tout

Analyse de la production après extraction

Recommended Posts

Extraire des tables de base de données avec CSV [connexion ODBC de R et python]
Obtenir des données de la base de données via ODBC avec Python (Access)
Fonctionne avec Python et R
Extraire des images et des tableaux de pdf avec python pour réduire la charge de reporting
Lire et écrire du CSV avec Python
Extraire le jeu de données bigquery et la liste des tables avec python et la sortie en CSV
Extraire le texte du pdf [python] et lire les caractères à haute voix avec Open-Jtalk
[Traitement du langage naturel] Extraire les mots-clés de la base de données Kakenhi avec MeCab-ipadic-neologd et termextract
Grattage de la nourriture avec python et sortie en CSV
Connexion ODBC à FileMaker 11 Server Advanced avec Python 3
Lire JSON avec Python et générer un CSV
Générez une instruction d'insertion à partir de CSV avec Python.
Convertir JSON en CSV avec Python de Splunk
Exemple de lecture et d'écriture de CSV avec Python
Extraire des données d'une page Web avec Python
Extraire "date actuelle uniquement" et "date et heure actuelles" avec python datetime.
[Python3] Connexion à Oracle Database et exécution de SQL [cx_Oracle]
[Python] Lire le csv japonais avec des pandas sans caractères déformés (extraire davantage les colonnes écrites en japonais)
[Python débutant] Extrayez la préfecture et la ville de l'adresse (3 lignes).
Supprimez les composants et les rappels de app.py avec plotly Dash
[Python] Extraire uniquement les nombres des listes et des chaînes de caractères
Supprimer les en-têtes de fichiers CSV à plusieurs formats avec python
Accès ODBC à SQL Server depuis Linux avec Python
[Python / Ruby] Comprendre le code Comment obtenir des données en ligne et les écrire au format CSV
Précautions lors de la saisie à partir de CSV avec Python et de la sortie vers json pour faire exe
Extraire le modèle du fichier EML enregistré depuis Thunderbird avec python3.7
Remarques sur l'importation de données depuis MySQL ou CSV avec Python
[Python] Lisez le fichier csv et affichez la figure avec matplotlib
Hash avec python et échapper à l'égosa d'un certain ministre
Collecte d'informations sur Twitter avec Python (intégration de MySQL et Python)
Programmation avec Python et Tkinter
Chiffrement et déchiffrement avec Python
Lire csv avec des pandas python
Python et matériel - Utilisation de RS232C avec Python -
Extraire les données Twitter avec CSV
Connexion simultanée UDP avec Python
Écrire en csv avec Python
python avec pyenv et venv
Télécharger le fichier csv avec python
Extraire les données csv et calculer
Regroupement de connexions avec Python + MySQL
Faites fonctionner Jupyter avec l'API REST pour extraire et enregistrer le code Python
Comment importer des fichiers CSV et TSV dans SQLite avec Python
Essayez d'extraire une chaîne de caractères d'une image avec Python3
Obtenez des données de VPS MySQL avec Python 3 et SQL Alchemy
Manipulation des données Kintone avec le pilote ODBC Python & C Data d'AWS Lambda
Utilisez Firefox avec Selenium depuis python et enregistrez la capture d'écran
[Python] Essayez de reconnaître les caractères des images avec OpenCV et pyocr
Construction de l'environnement LaTeX et R (un peu Python) avec SublimeText3 (Windows)
Communiquez avec FX-5204PS avec Python et PyUSB
Briller la vie avec Python et OpenCV
Extraire le fichier xz avec python
Essayez l'authentification de base de données IAM à partir de Python
Robot fonctionnant avec Arduino et python
Appeler C depuis Python avec DragonFFI
Installez Python 2.7.9 et Python 3.4.x avec pip.
Réseau neuronal avec OpenCV 3 et Python 3
Modulation et démodulation AM avec python