DataFacts.nl

Businessblog van het bedrijf i4data

Goed presterende (snelle) SQL Queries maken

Vaak volstaat het om een SQL query te schrijven die functioneel het juiste resultaat oplevert zonder dat de snelheid van de query een rol speelt, bijvoorbeeld als één record moet worden opgehaald van een tabel die in mutatiescherm van een applicatie moet worden gebruikt.

Vaak is de snelheid waarmee de SQL query een resultaat oplevert wel heel erg belangrijk [lees meer...]

Adressenbestand ontdubbelen? Probeer het eens met trigrammen (update).

Ieder bedrijf heeft er last van: Het bedrijfsbestand (relatiebestand, naw gegevens, adresgegevens, mailingbestand, klanten, prospects) groeit en op den duur is het bestand gevuld met relaties die dubbel voorkomen, maar net niet 100% hetzelfde. Een goede opschoonactie is dan soms noodzakelijk, bijvoorbeeld voordat de mailing de deur uitgaat. Ik heb zelf een aantal van dit soort trajecten doorlopen en hier soms software van derden gebruikt (bijvoorbeeld Human Inference). Maar hoe vind je nou die dubbelen zonder dit soort dure software en zonder het gehele bestand handmatig te moeten doorlopen?

Een antwoord kan zijn: met trigrammen.

[lees meer...]

Taal van een tekst bepalen m.b.v. trigrammen

Tri-grammen kunnen voor verschillende doeleinden worden gebruikt. Al eerder schreef ik over het gebruiken van Trigrammen bij het ontdubbelen van een relatiebestand. Tri-grammen kunnen ook worden gebruikt bij het bepalen van de taal van een stuk tekst.
[lees meer...]

Hoe strip je de HTML opmaak uit een webpagina

Vaak is het nodig om de HTML-tags uit (stukken uit) een HTML pagina te halen. Bijvoorbeeld in situaties dat de content van de pagina moet worden onderzocht of geanaliseerd. Dit is heel eenvoudig te doen met reguliere expressies (Regex).

[lees meer...]

Checklist bij het converteren van een database tekstveld

Na het converteren van een databestand is het noodzakelijk om deze conversie goed te testen. Immers, zodra de conversie niet helemaal goed is verlopen is er data verloren gegaan die heel vaak niet meer terug is te halen. 

Op welke punten moet je nu letten bij het converteren van een tekstveld? Hierbij een checklist.

[lees meer...]

Hoe haal je de relevante keywords uit web/html content.

Information Retrieval is een zeer interessante tak van sport: De kunst van het vinden van de juiste content uit een hele grote verzameling op basis van een Query/vraag. Hoe weet Google toch dat als ik artikelen over ‘apple’ zoek ik het computermerk Apple bedoel en niet zo’n stuk fruit?  

Dit begint bij het op een slimme manier indexeren van de content. In dit artikel geeft ik een ‘brute force’ voorbeeld hoe je de belangrijkste sleutelwoorden van een stuk HTML content zou kunnen bepalen.

[lees meer...]

Hoe converteer/importeer je snel 2 miljoen XML bestanden naar een SQL Server database

Onlangs ben ik een conversie-uitdaging aangegaan waarbij 2.1 miljoen XML bestanden (relationele nawbestanden) geconverteerd/geimporteerd moesten worden naar een SQL server database in een afwijkend datamodel. Deze 2.1 miljoen XML bestanden gebruikten 4 verschillende XML formaten maar moesten wel allemaal ingelezen worden in het zelfde datamodel. Ik had de beschikking over een Windows server en SQL server 2005 om dit voor elkaar te krijgen.

Bij een dergelijke conversie loop je in ieder geval tegen de volgende uitdagingen aan:

  • Windows kan niet meer dan ongeveer 64000 bestanden per map aan.
  • Windows is niet gebouwd om snel met dit soort hoeveelheden bestanden om te kunnen gaan.
  • Er moet XSL transformatie worden toegepast. (4 verschillende transformaties)
  • De referentiele integriteit moet ‘buitenom’ bewaakt worden
  • De codering van de karakterset

Ik heb dit conversietraject opgelost met behulp van SQL Server Integration Services (SSIS) en zal globaal uitleggen hoe ik dit heb gedaan. Let op! Alleen voor techneuten.

[lees meer...]

Cheat sheet (Factsheet) voor SQL Server gebruikers

SQL Server factsheetIk werk zelf veel met SQL Server en MySQL. Met name voor het schrijven van queries om gegevens te bevragen en te manipuleren. Sommige bewerkingen vragen dusdanig veel resources van een systeem dat ik deze queries ook snel (lees: korte executietijd) moet maken zodat deze efficient met de resources omgaan.

Om deze queries gemakkelijker te kunnen schrijven heb ik enige tijd geleden al een factsheet gemaakt waarop alle voor mij belangrijke functies, datatypen, checklijsten, symbolen en syntaxis voor SQL Server te vinden.

Deze cheat sheet (factsheet) past op een dubbelzijdig in kleur afgedrukt A4-tje en kan (het liefst gelamineerd) als naslag in de tas geschoven worden.

[lees meer...]

Hoe haal je URL’s uit HTML pagina’s

In mijn dagelijkse werk houd ik mij veel bezig met Information Extraction. Met Information Extraction (Informatie Extractie) wordt bedoeld ‘het vinden van Informatie uit ongestructureerde data, bijvoorbeeld vrije tekst of HTML’. Information Extraction kan worden gebruikt om bijvoorbeeld geautomatiseerd elementen uit CVs te herkennen of documenten geautomatiseerd te categoriseren. Zoekmachines maken vaak gebruik van Information Extraction om relevantie van een website op basis van een zoekterm te bepalen.

Soms is het interessant om de URLs / Hyperlinks uit een stuk ongeordende tekst te halen, bijvoorbeeld:

  • om te bepalen wat op dit moment een heel erg HOT onderwerp is op het internet
  • om een spider of crawler (Gebruikt door onder andere zoekmachines) te maken
  • om het onderwerp van een artikel te achterhalen.
  • om een sitemap te kunnen maken

Er zijn een aantal methoden mogelijk om deze URLs te vinden. Eén daarvan is het gebruiken van regular expressions (Reguliere expressies). Om dit te kunnen doen is er naast een reguliere expressie een stukje programmeerwerk nodig. Ik zal een voorbeeld geven hoe dit te doen met C# (.NET).

[lees meer...]

Hoe gaat Google met datums in HTML pagina’s om (Deel 2)?

Eergisteren schreef ik een bericht waarin ik liet zien dat Google aardig in staat is om de meest relevante datum van een webpagina te vinden en deze (soms) dan ook toont in de zoekresultaten. Ik ben benieuw of Google deze datum ook meeweegt met de zoekresultaten. Vooralsnog lijkt dit niet het geval. Wel is het zo dat google een aantal regels lijkt te hanteren voor het bepalen van deze datum.

HIerbij mijn bevindingen tot nu toe:

[lees meer...]