kaggle
This commit is contained in:
2
pgvector/openfoodfacts.http
Normal file
2
pgvector/openfoodfacts.http
Normal file
@@ -0,0 +1,2 @@
|
||||
https://world.openfoodfacts.net/api/v2/product/3175680011480.json
|
||||
Authorization: Basic off:off
|
||||
53
pgvector/pgvector.sql
Normal file
53
pgvector/pgvector.sql
Normal file
@@ -0,0 +1,53 @@
|
||||
create table produit (
|
||||
id bigint primary key,
|
||||
ean13 EAN13 null
|
||||
nom text not null,
|
||||
marque text null,
|
||||
categorie text null,
|
||||
energie int not null,
|
||||
proteines float4 null,
|
||||
glucides float4 null,
|
||||
sucres float4 null,
|
||||
graisses float4 null,
|
||||
graisses_saturees float4 null,
|
||||
sel float4 null,
|
||||
fibres float4 null,
|
||||
nutriscore int null,
|
||||
additifs int null,
|
||||
additifs_list text[] null,
|
||||
potassium float null,
|
||||
calcium float null,
|
||||
magnesium float null,
|
||||
sodium float null,
|
||||
chlorure float null,
|
||||
sulfate float null,
|
||||
nitrate float null,
|
||||
hydrogenocarbonate float null,
|
||||
silice float null,
|
||||
fluor float null,
|
||||
residu float null,
|
||||
ph float null,
|
||||
vitamin_a float null,
|
||||
vitamin_c float null
|
||||
);
|
||||
|
||||
comment on column produit.potassium IS 'K⁺ en mg/L';
|
||||
comment on column produit.calcium IS 'Ca²⁺ en mg/L';
|
||||
comment on column produit.magnesium IS 'Mg²⁺ en mg/L';
|
||||
comment on column produit.sodium IS 'Na⁺ en mg/L';
|
||||
comment on column produit.chlorure IS 'Cl⁻ en mg/L';
|
||||
comment on column produit.sulfate IS 'SO₄²⁻ en mg/L';
|
||||
comment on column produit.nitrate IS 'NO₃⁻ en mg/L';
|
||||
comment on column produit.hydrogenocarbonate IS 'HCO₃⁻ en mg/L';
|
||||
comment on column produit.silice IS s'SiO₂ en mg/L';
|
||||
comment on column produit.fluor IS 'F en mg/L';
|
||||
|
||||
\COPY produit FROM '/tmp/produits/cereales_petitdejeuner.csv' (FORMAT CSV, header, ENCODING 'UTF8');
|
||||
\COPY produit FROM '/tmp/produits/confiture.csv' (FORMAT CSV, header, ENCODING 'UTF8');
|
||||
\COPY produit FROM '/tmp/produit.csv' (FORMAT CSV, header, ENCODING 'UTF8');
|
||||
|
||||
alter table produits
|
||||
add column nutrition vector(10);
|
||||
|
||||
update produits
|
||||
set nutrition = ARRAY[energie, proteines, glucides, sucres, graisses, graisses_saturees, sel, fibres, nutriscore, additifs]::vector;
|
||||
25
pgvector/populate.sql
Normal file
25
pgvector/populate.sql
Normal file
@@ -0,0 +1,25 @@
|
||||
with selection as (
|
||||
select op.id, product_name, brands, "energy-kcal_100g", fat_100g, "saturated-fat_100g",
|
||||
"carbohydrates_100g", "sugars_100g", "proteins_100g", "salt_100g", "fiber_100g",
|
||||
"nutriscore_score", "additives_n", string_to_array(additives_en, ','),
|
||||
"potassium_100g", "calcium_100g", "vitamin-a_100g", "vitamin-c_100g",
|
||||
main_category_en
|
||||
from openfoodfacts_cleaned op
|
||||
left join produit p on p.id = op.id
|
||||
where brands like 'Nestlé%'
|
||||
and p.id is null
|
||||
and "energy-kcal_100g" is not null
|
||||
and proteins_100g is not null
|
||||
and fat_100g is not null
|
||||
and "saturated-fat_100g" is not null
|
||||
and carbohydrates_100g is not null
|
||||
and sugars_100g is not null
|
||||
and salt_100g is not null
|
||||
and nutriscore_score is not null
|
||||
)
|
||||
insert into produit (id, nom, marque,
|
||||
energie, graisse, graisse_saturee,
|
||||
glucide, sucre, proteines, sel,
|
||||
fibres, nutriscore, additifs, additifs_list,
|
||||
potassium, calcium, vitamin_a, vitamin_c, categorie)
|
||||
select * from selection;
|
||||
Reference in New Issue
Block a user