Sachverhalt: A. Die 1965 geborene M._ meldete sich im Mai 2006 bei der Invalidenversicherung zum Leistungsbezug an. Nach Abklärungen und Durchführung des Vorbescheidverfahrens verneinte die IV-Stelle des Kantons St. Gallen mit Verfügung vom 3. Januar 2008 mangels eines rentenbegründenden Invaliditätsgrades einen Rentenanspruch. B. In Gutheissung der Beschwerde der M._ hob das Versicherungsgericht des Kantons St. Gallen mit Entscheid vom 24. August 2009 die Verfügung vom 3. Januar 2008 auf, sprach ihr eine halbe Invalidenrente ab 1. Mai 2006 zu und wies die Sache zur Ermittlung des Rentenbetrages an die Verwaltung zurück. C. Die IV-Stelle des Kantons St. Gallen führt Beschwerde in öffentlich-rechtlichen Angelegenheiten und beantragt, den Entscheid vom 24. August aufzuheben und die Verfügung vom 3. Januar 2008 zu bestätigen. M._ lässt die Abweisung der Beschwerde beantragen. Das kantonale Gericht und das Bundesamt für Sozialversicherungen verzichten auf eine Stellungnahme. 