16个版本
0.3.0 | 2022年4月3日 |
---|---|
0.2.12 | 2021年9月28日 |
0.2.11 | 2021年8月21日 |
0.2.10 | 2021年7月16日 |
0.2.0 | 2021年3月21日 |
#660 in 数据库接口
用于 3 crates
175KB
4.5K SLoC
mlmd
ml-metadata的Rust实现。
此crate支持用于ml-metadata-v1.7.0或更高版本的schema版本8。
示例
use mlmd::MetadataStore;
use mlmd::metadata::EventType;
use tempfile::NamedTempFile;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// Creates metadata store.
let db_file = NamedTempFile::new()?;
let sqlite_uri = format!("sqlite://{}", db_file.path().to_str().unwrap());
let mut store = MetadataStore::connect(&sqlite_uri).await?;
// Creates an artifact.
let artifact_type_id = store.put_artifact_type("DataSet").execute().await?;
let artifact_id = store.post_artifact(artifact_type_id).uri("/foo/bar").execute().await?;
// Creates an execution.
let execution_type_id = store.put_execution_type("Training").execute().await?;
let execution_id = store.post_execution(execution_type_id).execute().await?;
// Links the above execution with the artifact.
store.put_event(execution_id, artifact_id).ty(EventType::Input).execute().await?;
// Gets executions.
let executions = store.get_executions().execute().await?;
assert_eq!(executions.len(), 1);
assert_eq!(executions[0].id, execution_id);
Ok(())
}
限制
以下功能尚未支持
- gRPC客户端
input_type
和output_type
字段中的Execution
以下功能不计划支持
- gRPC服务器
- 数据库模式迁移
ml-metadata
参考
依赖项
~31–46MB
~813K SLoC