Zum Hauptinhalt springen

Ein Post getaggt mit "connector"

Alle Tags anzeigen

· 6 Minuten Lesezeit
Fritz larco

Hintergrund

Einführung in die Sling-Befehlszeilenschnittstelle

Sling CLI ist ein Befehlszeilentool, das ein einfaches und effizientes Verschieben von Daten (Extrahieren und Laden) von/zu Datenbanken, Speicherplattformen und SaaS-Anwendungen ermöglicht. Der Einstieg ist einfach, Sie können einfach pip install sling ausführen, wenn Sie Pip von Python installiert haben. Oder Sie können die Binärdatei für Ihren Computer [hier] herunterladen (https://docs.slingdata.io/sling-cli/getting-started).

Anmeldeinformationen für die Verbindung

Um sling verwenden zu können, müssen wir zuerst Verbindungsdaten konfigurieren, und die Sling-Befehlszeilenschnittstelle sucht an verschiedenen Stellen danach. Dies ermöglicht eine „Plug & Play“-Natur, wenn Sie bereits ein anderes Tool wie dbt verwenden oder Verbindungs-URLs in Umgebungsvariablen festgelegt haben. Es wird jedoch empfohlen, die env.yaml-Datei von Sling zu verwenden, da sie eine konsistentere und flexiblere Erfahrung ermöglicht.

Sling-Env-Datei

Wenn Sie den Befehl sling zum ersten Mal ausführen, wird der Ordner .sling im Basisverzeichnis des aktuellen Benutzers (~/.sling) erstellt, der wiederum eine Datei namens env.yaml enthält. Die Struktur für die Env-Datei von Sling ist einfach, Sie legen die Anmeldeinformationen Ihrer Verbindungen unter dem Schlüssel connections ab, wie unten gezeigt:

connections:
marketing_pg:
url: 'postgres://...'
ssh_tunnel: 'ssh://...' # optional

# oder dbt-Profil gestylt
marketing_pg:
type: postgres
host: [hostname]
user: [username]
password: [password]
port: [port]
dbname: [database name]
schema: [dbt schema]
ssh_tunnel: 'ssh://...'

finance_bq:
type: bigquery
method: service-account
project: [GCP project id]
dataset: [the name of your dbt dataset]
keyfile: [/path/to/bigquery/keyfile.json]

# globale Variablen, zur Laufzeit für alle Verbindungen verfügbar (optional)
variables:
aws_access_key: '...'
aws_secret_key: '...'

Bitte siehe hier für alle akzeptierten Verbindungstypen und den jeweils benötigten Datenpunkt.

Wenn Sie den sling conns list-Befehl mit Sling Env-Anmeldeinformationen verwenden, wird die SOURCE-Spalte als sling env yaml angezeigt.

Umgebungsvariablen

Wenn Sie lieber Umgebungsvariablen verwenden möchten, reicht es aus, diese wie gewohnt in Ihrer Shell-Umgebung zu setzen:

# Mac / Linux
export MY_PG='postgresql://user:mypassw@pg.host:5432/db1'
export MY_SNOWFLAKE='snowflake://user:mypassw@sf.host/db1'
export ORACLE_DB='oracle://user:mypassw@orcl.host:1521/db1'

# Windows-Powershell
set MY_PG 'postgresql://user:mypassw@pg.host:5432/db1'
set MY_SNOWFLAKE 'snowflake://user:mypassw@sf.host/db1'
set ORACLE_DB 'oracle://user:mypassw@orcl.host:1521/db1'

Wenn Sie den Befehl sling conns list mit Umgebungsvariablen verwenden, wird die Spalte SOURCE als env variable angezeigt.

DBT-Profile

dbt ist ein weiteres beliebtes Tool, das viele Datenfachleute täglich verwenden, und die Unterstützung bestehender lokaler Profile ermöglicht eine einfache übergreifende Nutzung. Der typische Speicherort für die dbt-Anmeldeinformationen befindet sich in der Datei ~/dbt/profiles.yml. Weitere Einzelheiten finden Sie hier.

Wenn Sie über dbt-Anmeldeinformationen verfügen und den Befehl sling conns list verwenden, wird die Spalte SOURCE als dbt profiles yaml angezeigt.

Der Unterbefehl conns

Nachdem Sie nun Anmeldedaten festgelegt haben, bietet Sling einen conns-Unterbefehl zur Interaktion mit den Verbindungen. Wir können die folgenden Operationen ausführen: list, test und discover.

$ sling conns -h
conns - Manage local connections

Usage:
conns [discover|list|test]

Subcommands:
discover list available streams in connection
list list local connections detected
test test a local connection

Flags:
--version Displays the program version string.
-h --help Displays help with available flag, subcommand, and positional value parameters.

Verbindungen auflisten

Es ist praktisch, alle in unserer Umgebung verfügbaren Verbindungen anzuzeigen und aufzulisten. Wir können einfach den Befehl sling conns list ausführen. Hier ist ein Beispiel:

$ sling conns list
+----------------------+------------------+-------------------+
| CONN NAME | CONN TYPE | SOURCE |
+----------------------+------------------+-------------------+
| AWS_S3 | FileSys - S3 | sling env yaml |
| AZURE_STORAGE | FileSys - Azure | sling env yaml |
| BIGQUERY | DB - BigQuery | sling env yaml |
| BIONIC_DB1 | DB - PostgreSQL | dbt profiles yaml |
| BTD_S3 | FileSys - S3 | sling env yaml |
| CLICKHOUSE | DB - Clickhouse | sling env yaml |
| DEMO_POSTGRES | DB - PostgreSQL | sling env yaml |
| GITHUB_DBIO | API - GitHub | sling env yaml |
| NOTION | API - Notion | sling env yaml |
| SNOWFLAKE | DB - Snowflake | env variable |
| STEAMPIPE | DB - PostgreSQL | sling env yaml |
+----------------------+------------------+-------------------+

Verbindungen testen

Das Sling-CLI-Tool ermöglicht auch das Testen von Verbindungen. Sobald wir den Verbindungsnamen kennen, können wir den Befehl sling conns test verwenden:

$ sling conns test -h
test - test a local connection

Usage:
test [name]

Positional Variables:
name The name of the connection to test (Required)
Flags:
--version Displays the program version string.
-h --help Displays help with available flag, subcommand, and positional value parameters.

Hier ist ein aktuelles Beispiel:

$ sling conns test MSSQL
6:42PM INF success!

Erkennung von Connection Streams

Dies ist ein weiterer raffinierter Unterbefehl, mit dem man sehen kann, welche Datenströme für sling verfügbar sind, aus denen für eine bestimmte Verbindung gelesen wird: der sling conns discover-Befehl.

$ sling conns discover -h
discover - list available streams in connection

Usage:
discover [name]

Positional Variables:
name The name of the connection to test (Required)
Flags:
--version Displays the program version string.
-h --help Displays help with available flag, subcommand, and positional value parameters.
-f --filter filter stream name by pattern (e.g. account_*)
--folder discover streams in a specific folder (for file connections)
--schema discover streams in a specific schema (for database connections)

Für Datenbankverbindungen werden die verfügbaren Tabellen und Ansichten aufgelistet. Bei Speicherverbindungen werden die nicht rekursiven Dateiobjekte aufgelistet, die sich im angegebenen Quellordner befinden. Für SaaS/API-Verbindungen werden alle verfügbaren Objekte aufgelistet, die für den Verbrauch vorhanden sind. Nachfolgend finden Sie einige Beispiele.

Datenbankverbindungen

$ sling conns discover CLICKHOUSE
6:57PM INF Found 68 streams:
- "default"."docker_logs"
- "default"."sling_docker_logs"
- "system"."aggregate_function_combinators"
- "system"."asynchronous_metric_log"
- "system"."asynchronous_metrics"
- "system"."build_options"
- "system"."clusters"
....

Wenn wir nach einem bestimmten Schema filtern wollen, können wir Folgendes tun:

$ sling conns discover CLICKHOUSE --schema default
8:29PM INF Found 2 streams:
- "default"."docker_logs"
- "default"."sling_docker_logs"

SaaS-Verbindungen

$ sling conns discover NOTION
6:58PM INF Found 4 streams:
- blocks
- databases
- pages
- users

Speicherverbindungen

$ sling conns discover AWS_S3
6:52PM INF Found 7 streams:
- s3://my-sling-bucket/logging/
- s3://my-sling-bucket/part.01.0001.csv
- s3://my-sling-bucket/sling/
- s3://my-sling-bucket/temp/
- s3://my-sling-bucket/test.fs.write/
- s3://my-sling-bucket/test/
- s3://my-sling-bucket/test_1000.csv

Wenn wir die Dateien in einem Unterordner sehen wollen, können wir das tun:

$ sling conns discover AWS_S3 --folder s3://my-sling-bucket/logging/
6:55PM INF Found 1 streams:
- s3://my-sling-bucket/logging/1/1.log.gz

EL-Aufgaben werden ausgeführt

Jetzt, da Ihre Verbindungen eingerichtet sind, können Sie einige Aufgaben zum Extrahieren und Laden ausführen! Wir behandeln dies ausführlich in einem separaten Beitrag, Sie können darüber [hier] lesen (https://docs.slingdata.io/sling-cli/running-tasks). Von der Befehlszeile aus können Sie auch sling run -e ausführen, was eine Reihe von Beispielen ausgibt.

Fazit

Alles in allem erleichtert Sling CLI die Verwaltung und Interaktion mit verschiedenen Arten von Verbindungen von Ihrer Shell aus. Wenn Sie Fragen oder Anregungen haben, können Sie uns gerne hier kontaktieren. Schauen Sie sich außerdem unbedingt Sling Cloud an, einen Cloud-Dienst, der Ihre verschiedenen Anforderungen zum Extrahieren und Laden zu einem wettbewerbsfähigen Preismodell erfüllt.