Nouveau dans

Connexion aux bases de données à l’aide de JDBC

La connexion de Stata avec des bases de données est encore plus facile. jdbc nous permet d’échanger des données avec certains des fournisseurs de bases de données les plus populaires tels que Oracle, MySQL, Amazon Redshift, Snowflake, Microsoft SQL Server, et bien plus encore. Ce qui est génial avec jdbc, c’est qu’il s’agit d’une solution multiplateforme, de sorte que notre configuration JDBC fonctionne de la même manière pour les systèmes Windows, Mac et Unix. Une fois que vous avez installé un pilote JDBC, ce pilote et votre code Stata sont tout ce dont vous avez besoin pour passer, par exemple, de votre ordinateur portable Mac aux systèmes Windows de votre entreprise.

Points forts

  • Accédez aux données de nombreuses bases de données, notamment Oracle, MySQL, Amazon Redshift, Snowflake, Microsoft SQL Server, etc.
  • Entièrement compatible avec les plates-formes croisées
  • Chargez une table de base de données entière dans Stata, ou utilisez un SELECT SQL pour charger des colonnes spécifiques d’une table dans Stata.
  • Insérez toutes vos variables dans une table de base de données, ou insérez seulement un sous-ensemble de vos données.
  • Exécuter des instructions SQL à partir de Stata
  • Stocker les paramètres de connexion comme un nom de source de données (DSN).

Voyons comment cela fonctionne

Nous avons des données de messagerie stockées sur Amazon Web Services dans un cluster Redshift, et nous devons charger ces données dans Stata. Nous nous connectons d’abord à AWS et allons à la page de configuration d’Amazon Redshift pour télécharger le pilote JDBC correct et obtenir les informations de connexion correctes. Nous plaçons ensuite le fichier JAR JDBC téléchargé le long de notre adoption Stata. Maintenant, dans l’éditeur de fichier Do de Stata, nous stockons nos informations de connexion en tapant

. local jar "redshift-jdbc42-2.0.0.0.jar"
. local driverc "com.amazon.redshift.jdbc42.Driver"
. local url "jdbc:redshift://redshift-cluster-1.cziajbxjzi3e.us-west-2.redshift.amazonaws.com:5439/emails"
. local user "admin"
. local pass "secret"

. jdbc connect,  jar("`jar'") driverclass("`driverc'") url("`url'")
        user("`user'") password("`pass'")

Si ces paramètres de base de données doivent être utilisés par d’autres personnes ou si vous voulez simplement vous en souvenir plus facilement, nous pouvons les stocker en tapant

. local jar "redshift-jdbc42-2.0.0.0.jar"
. local driverc "com.amazon.redshift.jdbc42.Driver"
. local url "jdbc:redshift://redshift-cluster-1.cziajbxjzi3e.us-west-2.redshift.amazonaws.com:5439/emails"
. local user "admin"
. local pass "secret"

. jdbc add MyRed,  jar("`jar'") driverclass("`driverc'") url("`url'")
        user("`user'") password("`pass'")

Nous pouvons maintenant ajouter les commandes ci-dessus à profile.do pour enregistrer ces paramètres de connexion entre les sessions Stata, et nous pouvons maintenant nous connecter à notre base de données Redshift en tapant

. jdbc connect MyRed

Pour voir quelles sont les tables disponibles à charger depuis notre connexion, nous tapons

. jdbc showtables

Database: emails
Tables
category
response_info
employees

Nous pouvons décrire une table en tapant

. jdbc describe response_info

Table: response_info
Column name Column type
id BIGINT UNSIGNED filename VARCHAR category_id BIGINT UNSIGNED employee_id BIGINT UNSIGNED datein TIMESTAMP dateout DATE screendate TIMESTAMP rid TEXT keywords TEXT assigntime TIMESTAMP resptime TIMESTAMP timeadded TIMESTAMP sversion DOUBLE correct BIT timetouched TIMESTAMP timemailed TIMESTAMP

Pour charger les données, on tape

. jdbc load, table("response_info") clear
(128 observations loaded)

Maintenant nous avons un jeu de données Stata et nous pouvons effectuer notre analyse !