为知识图谱ETL下载并缓存文件
项目描述
KG-Hub Downloader
概述
这是一个基于配置的文件缓存下载器,最初支持对http请求和Elasticsearch的查询。
安装
KGHub下载器可以通过pip安装
pip install kghub-downloader
配置
下载器需要一个YAML文件,其中包含要下载的目标URL列表以及本地名称以保存这些下载。
例如,请参阅example/download.yaml
可用选项包括
- *url:下载的URL。目前支持
http(s)
ftp
- 带有
glob:
选项以下载具有特定扩展名的文件(目前仅支持ftp,并且会递归地下载)。
- 带有
- Google Cloud Storage (
gs://
) - Google Drive (
gdrive://
或 https://drive.google.com/...). 文件必须是公开可访问的。 - Amazon AWS S3 存储桶 (
s3://
) - GitHub 发布资源 (
git://RepositoryOwner/RepositoryName
)
- local_name:本地保存文件的名称
- tag:用于过滤下载的标签
- api:用于下载文件的 API。当前支持:
elasticsearch
- elasticsearch 选项
- query_file:包含要对索引运行的查询的文件
- index:查询的 elasticsearch 索引
* 备注
Google Cloud Storage URL 需要您按照以下说明设置您的凭证:此处。您必须
- 创建一个服务帐户
- 将服务帐户添加到相关的存储桶,并
- 为该服务帐户下载一个 JSON 密钥。
然后,将GOOGLE_APPLICATION_CREDENTIALS
环境变量设置为指向该文件。将本地文件镜像到 Amazon AWS S3 存储桶需要以下步骤
- 创建 AWS 账户
- 在 AWS 中创建 IAM 用户:这将允许获取用于身份验证的
AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
。这两个应该作为环境变量存储在用户的系统中。- 创建 S3 存储桶:这将是推送本地文件的目标。
您还可以使用 {VARIABLE_NAME}
包含任何您设置为环境变量的机密信息,例如 API 密钥
---
- url: "https://example.com/myfancyfile.json?key={YOUR_SECRET}"
localname: myfancyfile.json
注意:YOUR_SECRET
必须作为一个环境变量,并且在 URL 字符串中确保包含大括号。
用法
下载器可以直接在 Python 中使用,也可以通过命令行使用
在 Python 中
from kghub_downloader.download_utils import download_from_yaml
download_from_yaml(yaml_file="download.yaml", output_dir="data")
命令行
下载 download.yaml 文件中列出的文件
$ downloader [OPTIONS] ARGS
选项 | |
---|---|
yaml_file | download.yaml 文件的路径,将解析以下载内容。 默认为 ./download.yaml |
ignore_cache | 忽略缓存并下载文件,即使它们存在(默认 False ) |
snippet_only | 只下载每个未压缩源的前 5 KB,用于测试和文件检查 |
tags | 仅下载具有此标签的文件 |
mirror | 上传下载文件的远程存储 URL。 支持的存储桶:Google Cloud Storage |
参数 | |
---|---|
output_dir | 保存下载文件的路径。 |
示例
$ downloader --output_dir example_output --tags zfin_gene_to_phenotype example.yaml
$ downloader --output_dir example_output --mirror gs://your-bucket/desired/directory
# Note that if your YAML file is named `download.yaml`,
# the argument can be omitted from the CLI call.
$ downloader --output_dir example_output
开发
安装
git clone https://github.com/monarch-initiative/kghub-downloader.git
cd kghub-downloader
poetry install
运行测试
poetry run pytest
注意:测试需要按照上述说明设置 gcloud 凭证,使用 Monarch github actions 服务帐户。
项目详情
关闭
kghub_downloader-0.3.10.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e28a585c48b15552e4d908dae50672110729a65e9775ebc752d0cb953bff1069 |
|
MD5 | 294cf3d1a6254b7509362ffbc83f235a |
|
BLAKE2b-256 | fb5f5af7d8f0058e60a04ebb2f1d76d7075d6be46304c6c771964c853a779b5a |
关闭
kghub_downloader-0.3.10-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8e41bac81cf9915df8f68ea23802f8d48bec77efa65973d86f76595e0cd021b4 |
|
MD5 | 18ba61fb9430b7c9db60030d87e9a06e |
|
BLAKE2b-256 | d57b3b7c951bdd4936e6664a16e1e1619d0ac7287c030e5e1151c25e2e8f0530 |