DuckLake auf Leafcloud
Dieses Tutorial überträgt „Public DuckLake on Object Storage“ auf den Object Storage von Leafcloud, einem Cloud-Anbieter aus Amsterdam.
Object Store einrichten
-
Öffnen Sie das Leafcloud-Dashboard.
-
Gehen Sie zu Object Store, Containers und legen Sie einen neuen Container an. Wir verwenden den Namen
ducklake-storage. -
Aktivieren Sie das Kontrollkästchen Public Access und kopieren Sie den Link. Er sieht zum Beispiel so aus:
https://leafcloud.store/swift/v1/AUTH_f84982a3c5d04bd0846197d8e8ce3ddd/ducklake-storage
OpenStackClient einrichten
-
Laden Sie die Zugangsdaten von Leafcloud. Gehen Sie oben rechts auf Ihren Benutzernamen, Settings, Identity, Application Credentials, oder öffnen Sie einfach https://create.leaf.cloud/identity/application_credentials/.
-
Wählen Sie Create Application Credential und laden Sie die entstehenden Dateien
app-cred-<your_credential_name>-cred-openrc.shundclouds.yamlherunter. -
Sourcen Sie die Zugangsdaten in Ihrer Shell, um die Umgebungsvariablen zu setzen:
Terminal window source app-cred-<your_credential_name>-cred-openrc.sh -
Installieren Sie OpenStackClient in Ihrer bevorzugten Python-Umgebung:
Terminal window pip install python-openstackclient -
Legen Sie die Zugangsdaten für den Bucket an:
Terminal window openstack ec2 credentials create -
Die Ausgabe sieht etwa so aus:
+------------+----------------------------------+| Field | Value |+------------+----------------------------------+| access | <32-character hexadecimal value> || links | {'self': '...'} || project_id | <32-character hexadecimal value> || secret | <32-character hexadecimal value> || trust_id | None || user_id | <32-character hexadecimal value> |+------------+----------------------------------+ -
Speichern Sie die ausgegebenen Zugangsdaten.
Rclone einrichten
-
Installieren Sie Rclone.
-
Starten Sie die Einrichtung mit
rclone configund legen Sie ein neues Remote an. Wir nennen eslc. -
Wählen Sie Amazon S3 Compliant Storage Providers (
s3), Any other S3 compatible provider (other). -
Setzen Sie
access_key_idauf den Wert des Feldsaccessaus der Tabelle oben. -
Setzen Sie
secret_access_keyauf den Wert des Feldssecret. -
Bearbeiten Sie
~/.config/rclone/rclone.confvon Hand und setzen Sie den Endpoint aufhttps://leafcloud.store. -
Der Eintrag in
rclone.confsieht so aus:[lc]type = s3provider = Otheraccess_key_id = <32-character hexadecimal value>secret_access_key = <32-character hexadecimal value>endpoint = https://leafcloud.store
DuckLake anlegen
-
Legen Sie ein Verzeichnis namens
ducklake-storagean und wechseln Sie hinein. -
Legen Sie ein DuckLake nach der DuckLake-Anleitung „Using a Remote Data Path“ an.
-
Beim
DATA_PATHverwenden Sie den zuvor erhaltenen Pfadhttps://leafcloud.store/.../ducklake-storage. -
Synchronisieren Sie das DuckLake so mit dem Object Storage:
Terminal window rclone sync ducklake-storage lc:ducklake-storage
Testen
-
Verbinden Sie sich so mit dem DuckLake:
Terminal window duckdb ducklake:https://leafcloud.store/swift/v1/AUTH_f84982a3c5d04bd0846197d8e8ce3ddd/ducklake-storage/sf1.ducklake -
Listen Sie die Tabellen mit
.tables. Sie sehen eine Mischung aus Daten- und Metadatentabellen:D .tablesComment ducklake_column_tagComment_hasTag_Tag ducklake_data_file... -
Führen Sie eine beliebige SQL-Abfrage aus:
SELECT firstName FROM person LIMIT 1;┌───────────┐│ firstName ││ varchar │├───────────┤│ Jun │└───────────┘
Ausblick
Auf der Website von Leafcloud steht, dass ein Managed-Database-Dienst demnächst kommt. Damit ließe sich DuckLake mit Postgres für DuckDB mit mehreren Schreibern einrichten.